Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Use of unassigned local variable 
V
    Опции темы
nerezus
  Дата 2.6.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 1
Всего: 43



Код

Method Meth;
            switch (M)
            {
                case "MiniMax":
                    Meth = new MiniMax(L); // оно все наследуется от Method
                    break;
                case "BL":
                    Meth = new BL(L);
                    break;
                case "Sav":
                    Meth = new Sav(L);
                    break;
                case "Gur":
                    Meth = new Gur(L);
                    break;
                case "Ger":
                    Meth = new Ger(L);
                    break;
                case "Multi":
                    Meth = new Multi(L);
                    break;

            }
            if (Meth != null)
            {
                Meth.Solve();
            }


Код

Use of unassigned local variable 'Meth'

как это он на этапе компиляции может знать подобное? о_О
Тем более разве не может переменная быть null? Я в шоке.

P.S. Класс этот абстрактный.

Добавлено через 1 минуту и 40 секунд
P.P.S. Abstaract Factory не предлагать - в данном случае она решит проблему, но я хочу именно не обойти ее, а разобраться.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
HalkaR
Дата 2.6.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Код

Method Meth;
            switch (M)
            {
                case "MiniMax":
                    Meth = new MiniMax(L); // оно все наследуется от Method
                    break;
                case "BL":
                    Meth = new BL(L);
                    break;
                case "Sav":
                    Meth = new Sav(L);
                    break;
                case "Gur":
                    Meth = new Gur(L);
                    break;
                case "Ger":
                    Meth = new Ger(L);
                    break;
                case "Multi":
                    Meth = new Multi(L);
                    break;
                default:
                    throw new Exception("Unknown type");
            }
            if (Meth != null)
            {
                Meth.Solve();
            }


Добавлено через 2 минуты и 6 секунд
Смысл в том, что это видимо класс, а не структура, т.е. в начале вы объявляете объект, но не инициализируете. А это делать надо, хотя бы null-ом. Соответственно компилятор видит, что объект может быть не иницаилизирован (не все все варианты приводят к инициализации) до первого использования.
PM MAIL   Вверх
nerezus
Дата 2.6.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 1
Всего: 43



спасибо, solved )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1146 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.