Область действия переменных в языке Си#
Привет, Новичок спрашивает:
1) в чем разница между объявлением переменной вне любого {} за пределами самых верхних?
и
2) объявление переменной внутри {}, но маркировка ее как публичной?
Например:
класс MyApplication // Вариант 1
{
int variableInQuestion = 0;
}
против
класс MyApplication // Вариант 2
{
общественного недействительными метод mymethod()
{
int variableInQuestion= 0;
}
}
Из того, что я понимаю, не упоминая модификатор доступа, переменная получает минимально возможную область действия. Но я предполагаю, что это переопределяется модификатором доступа "public". Неверно?
Если эти два примера не эквивалентны, то в чем разница между ними?
Спасибо
Что я уже пробовал:
Я не знаю, как написать код для проверки этого, так как не знаю, что искать. Но я думаю, что мне нужно быть в состоянии понять/объяснить разницу.
[no name]
В примере 1, int variableInQuestion
является членом класса/переменной.
В примере 2, int variableInQuestion
является локальной переменной типа MyMethod
и поэтому виден только в MyMethod
Can't Code for Sure
Хорошо, спасибо, так что модификатор доступа не делает его видимым за пределами локального метода.
[no name]
Я не понимаю, что ты имеешь в виду. Кстати, я забыл упомянуть, что в примере 1, variableInQuestion
виден для всех методов class MyApplication
[Правка] думаю, теперь я понял, в чем дело.
Модификатор доступа в примере 2 относится только к методу, но не к локальным переменным самого метода.
Can't Code for Sure
Спасибо снова. Я предположил, что обнародование его имело тот же эффект, что и объявление его наверху.
[no name]
Добро пожаловать. Подождите несколько минут, я уверен, что некоторые члены здесь дадут вам более полный ответ... Я надеюсь... :)
Can't Code for Sure
Черт возьми, я допустил ошибку :( я хотел сказать, например 2:
класс MyApplication // Вариант 2
{
общественный метод mymethod
{
public int VariableInQuestion = 0;
}
}
[no name]
Это даже не будет компилироваться я думаю :-)
[Редактировать]
Кстати: если вы используете кнопку "ответить" локально для сообщения, отправитель сообщения будет проинформирован об этом.
Can't Code for Sure
Это все решает. Я идиотка.
Хорошего дня.
[no name]
"...Я идиот", пожалуйста, не надо! Делать ошибки не так уж плохо и обычно помогает учиться :-)