Просто быстрый вопрос к компилятору VisualStudio 2008.
Мы включили, чтобы предупреждения компилятора обрабатывались как ошибки, которые прекрасно работают, но сегодня я понял, что следующее поведение:
static void Main(string[] args)
{
int number = 0;
DateTime dateTime = DateTime.Now;
}
Компиляция этого фрагмента приводит только к одному предупреждению: «Переменная 'number' назначена, но ее значение никогда не используется".
Может кто-нибудь объяснить мне разницу, почему номер переменной приводит к ошибке, а не переменная dateTime?
Хорошо, похоже, это связано с литералами. Принимая во внимание следующий код:
static void Main(string[] args)
{
string str1 = "Foo";
string str2 = str1;
}
Компиляция с обеими строками не приводит к предупреждению, хотя на переменную "str2" никогда не ссылаются. Если вы закомментируете строку string str2 = str1;
, появится предупреждение, что переменная "str1" никогда не используется.