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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Name ... does not exist in the current context 
:(
    Опции темы
videns
Дата 10.3.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть следующий код:

Код


if ( var1 == "some name")
{
   var var2 = "1111";
}
else
{
   var var2 = "2222";
}

<далее какие-то действия с var2>



И в конце вот ругается на то, что переменная var2 не задана в текущем контексте. Хотя она явно задается в первом или втором случае. Можно как-то от этого избавиться? 

Есть вариант задавать вначале переменную, и потом уже ее изменять. Но если я не задаю явно тип переменной, а использую обозначение через var, то такой вариант не работает, т.к. ее надо явно инициализировать.
PM MAIL   Вверх
CYBERDREAM
Дата 10.3.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



ты хочешь вызывать из более высокого уровня.

Код

string var2;
if ( var1 == "some name")
{
   var2 = "1111";
}
else
{
    var2 = "2222";
}

<далее какие-то действия с var2>



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Экскалупатор
Дата 10.3.2010, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



videns, а почему нельзя объявить переменную нормально? а не VAR?
PM MAIL ICQ   Вверх
Kanes
Дата 11.3.2010, 00:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А это побочное влияние синтаксического сахара в С#
--------------------
Big gun - big future  
PM MAIL   Вверх
KelTron
Дата 11.3.2010, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 11
Всего: 38



Если уж так приспичило, можно сделать так:
Код

var var2 = "";
if ( var1 == "some name")
{
   var2 = "1111";
}
else
{
    var2 = "2222";
}

или так:
Код

var var2 = "2222";
if ( var1 == "some name")
{
   var2 = "1111";
}

Но это не тот случай, когда целесообразно использовать var


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Экскалупатор
Дата 11.3.2010, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



У автора две проблемы.
1. отсутствие понимания про видимость переменных.
2. явные проблемы с var(или явное не знание остальных типов). если понятно, что это строка, то надо написать сразу, что это строка. если все время писать var, то потом код читать вообще становиться не реально. везде одни эти var`ы и пока в них разберешься... то проще переписать все заново... 

в связи с этим можно посоветовать почитать первые пару глав любого учебника/справочника по C#.

Добавлено через 1 минуту и 21 секунду
з.ы. готов поспорить что var1 тоже объявлен ка var.
PM MAIL ICQ   Вверх
mrbrooks
Дата 11.3.2010, 08:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 17
Всего: 306



Более того сравнивать строки через оператор == не кошерно.
PM MAIL   Вверх
videns
Дата 11.3.2010, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Объявление var2 как строку привел только для примера. В действительности использую для Linq to SQL.

Код

Table1DataContext db = new Table1DataContext();
var var2 = from p in db.Table1
                     select p;


Решил действительно объявить переменную вначале:

IEnumerable<Table1> var2;

И после этого уже ее менять. Спасибо за помощь!
PM MAIL   Вверх
mrbrooks
Дата 11.3.2010, 09:13 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 17
Всего: 306



Цитата(videns @  11.3.2010,  09:11 Найти цитируемый пост)
В действительности использую для Linq to SQL.

это камрад надо было в самом начале писать. Выглядело все не так очевидно. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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