интересный факт про c# net

программирование net c# net

вот я тут сидел себе програмил некого не трогал но тут вдруг узнал инереснишый факт который объяснить сам не могу так что прошу вас так суть такова virtualField[i] =Convert.ToChar(numberBomb); вот присвоил переменой из массива некоторое значение и в switch задаю та если будет 1 то сделать тото и че и не че вобще ни чего ну ничего страшного попробовал через if и о чудо работает ну я не смирился что мне нельзя сделать это через switch посидев полчаса подумал и поприколу написал вот это virtualField[i] =Convert.ToChar(numberBomb.ToString()); даже не надеясь что будет работать и о чудо switch скушал это ну вопрос понятен какого(нецензурное слово)так происходит ах да язык c# net

Примечание:
numberBomb int ,int i,virtualField char

Примечание:
если надо еще напишите что именно

Примечание:
да по разному присваивает но тогда почему if видит а switch нет если я не ошибаюсь то switch просто if только удобней для древовидной обработки данных короче розжуйте

Примечание:
switch (CreatingAndPopulatingTheVirtualField.virtualField[cordinats])
{
case 'X':
g.DrawImage(partOfThePlayingField3, arrayСoordinateUnits[cordinats]);
g.DrawImage(partOfThePlayingField1, coordinatesEmoticon, 20);
break;
case 'P':
for (int i = arrayСoordinateUnits.Length - 1; i != 0; i--)
{
if (CreatingAndPopulatingTheVirtualField.virtualField[i] == 'P')
{
g.DrawImage(partOfThePlayingField4, arrayСoordinateUnits[i]);
}
}
break;
case '1':
g.DrawImage(partOfThePlayingField5, arrayСoordinateUnits[cordinats]);
break;
case '2':
g.DrawImage(partOfThePlayingField6, arrayСoordinateUnits[cordinats]);
break;
case '3':
g.DrawImage(partOfThePlayingField7, arrayСoordinateUnits[cordinats]);
break;
case '4':
g.DrawImage(partOfThePlayingField8, arrayСoordinateUnits[cordinats]);
break;
case '5':
g.DrawImage(partOfThePlayingField9, arrayСoordinateUnits[cordinats]);
break;
case '6':
g.DrawImage(partOfThePlayingField10, arrayСoordinateUnits[cordinats]);
break;
case '7':
g.DrawImage(partOfThePlayingField11, arrayСoordinateUnits[cordinats]);
break;
case '8':
g.DrawImage(partOfThePlayingField12, arrayСoordinateUnits[cordinats]);
break;
case '9':
g.DrawImage(partOfThePlayingField13, arrayСoordinateUnits[cordinats]);
break;
}
}
}

if(CreatingAndPopulatingTheVirtualField.virtualField[cordinats]=='1'){ g.DrawImage(partOfThePlayingField5, arrayСoordinateUnits[cordinats]);}

Примечание:
мда короче не if yt swtch не роботает блин почему char i1 =Convert.ToChar(1); то есть как так я ж присваиваю значение какого оно не присваивается

Примечание:
а вот так нет
using System;
internal static class Test{
private static void Main(){
if(Convert.ToChar(1)=='1'){
Console.WriteLine("if работает");
}
switch(Convert.ToChar(1)){
case '1':
Console.WriteLine("switch работает");
break;
}
Console.ReadKey();
}
}
я так понял что я не правильно единицу писал так что просто написать =='1' нельзя это означает что другое

Примечание:
мда короче полная лабуда ну возвращают они разные значение но почему мне ж надо в том и в том случаи символ char но видит ели число мы преобразуем в одно а строку в другое (нецензурщина)как так то есть Convert.ToChar(1) не равно Convert.ToChar("1") не понял как так там и там char но при этом они разные а мой мозг кипит при преобразовании числа получаем какую то (нецензурщина) а при преобразовании строки обычный char все не могу короче если кто то объяснит буду просто восторге а то у меня мозг кипит и материца .

Примечание:
короче я понял примерно спасибо всем кто отписался почитаю документацию
Ответы:
Переходи на C++Qt
Мало информации, если честно. Не указан тип переменных например.
а ты проверь для начала под дебагом, что у тебя происходит с числом, когда ты используешь просто Convert.ToChar(1) и когда Convert.ToChar("1"). Вот и ответ - дело не в свитче
Вы точно if не меняли при переходе от virtualField[i]=Convert.ToChar(numberBomb); к virtualField[i]=Convert.ToChar(numberBomb.ToString());?
>>написать =='1'
Для начала Вам нужно разобраться что возвращает Convert.ToChar(int), а что Convert.ToChar(string). Так как Convert.ToChar(1) и Convert.ToChar("1") возвращают разные значения.
1) Объясните смысл выражения: "Казнить нельзя помиловать" (намёк)
2) Пробывали почитать документацию на метод Convert.ToChar, чтобы узнать когда и что он возвращает?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.