Область влияния переменных в c#?

308
04 апреля 2017, 09:07

Я немного запутался, вот есть два куска кода, в котором в одном из них поле помечено модификатором static -значит оно глобальное и объявлено вне метода, как и положено

class Program
{
    static int x=1;
    static void Main()
    { 

а в другом случае - поле просто объявлено вне метода без модификатора static

class Program
{
     int x;
    static void Main()
    { 

- влияет ли это на что либо и будет ли она считаться глобальной? Знаю, вопрос Дурацкий, но я просто запутался в областях видимости(влияния переменных).

Answer 1

static говорит о том, что некоторое поле принадлежит не одному экземпляру, а всему классу:

class ProgramA
{
  public static int x;
}
class ProgramB
{
  public int x;
}
int xFromProgramA = ProgramA.x;
ProgramB k = new ProgramB();
k.x = 10;
ProgramB j = new ProgramB();
j.x = 20;
k.x == j.x // => false

Доступная в пределах всей программы а не только данного - класса

Вы, судя по всему, о модификаторах доступа: public/private/protected/internal. В вашем случае: нет, обе переменные private по умолчанию, а следовательно доступны только внутри экземпляра/класса.

READ ALSO
Отсутствует шаблон для WPF4 в MVVM Light

Отсутствует шаблон для WPF4 в MVVM Light

скачал и установил MVVM Light V52

217
Выбор паттерна проектирования WCF

Выбор паттерна проектирования WCF

Есть следующая задача: Приложение A посылает приложению B данныеПриложение B эти данные получает и уведомляет приложение A, после чего осуществляет...

218
Prism 4.1 инициализация

Prism 4.1 инициализация

Установил призму 41 (ФВ 4

216
Не выводится графика в C# Windows Form

Не выводится графика в C# Windows Form

работаю в MVisualStudio 2015, на Windows7Надо написать функцию, которая по точка выводит несколько линий

377