Поиск
 

Изучаем C Sharp (C#)

Программирование на C Sharp (C#) с нуля

Cи Шарп это просто Simple C#
Логин Пароль Вход Регистрация
Главная
Изучаем C#
Web-приложения
Win-приложения
Web-сервисы
ADO.NET
FrameWork
Алгоритмы
Исходники
Классы
Среда разработки
Статьи
Форум
FAQ
О Проекте
Обратная связь
Отблагодарить
Rambler's Top100

Введение в классы - Статические члены (часть 5)

СТАТИЧЕСКИЕ ЧЛЕНЫ КЛАССА


Вы можете определить член класса как статический (static member) или член экземпляра (instance member). По умолчанию каждый член определен как член экземпляра. Это значит, что для каждого экземпляра класса делается своя копия этого члена. Когда член объявлен как статический, имеется лишь одна его копия. Статический член создается при загрузке содержащего класс приложения и существует в течение жизни приложения. Поэтому вы можете обращаться к члену, даже если экземпляр класса еще не создан.
Один из примеров — метод Main. CLR (Common Language Runtime) нужна универсальная точка входа в ваше приложение. Поскольку CLR не должна создавать экземпляры ваших объектов, существуют правила, требующие определить в одном из ваших классов статический метод Main.
Вы можете захотеть использовать статические члены при наличии метода, который формально принадлежит классу, но не требует реального объекта. Скажем, если вам нужно отслеживать число экземпляров данного объекта, которое создается во время жизни приложения. Поскольку статические члены «живут» на протяжении существования всех экземпляров объекта, должен работать такой код:


using System;

class InstCount
{
    public InstCount()
    {
        instanceCount++;
    }
    static public int instanceCount;
    //instanceCount = 0;
    class AppClass
    {
        public static void Main()
        {
            Console.WriteLine(InstCount.instanceCount);
            InstCount ic1 = new InstCount();
            Console.WriteLine(InstCount.instanceCount);
            InstCount ic2 = new InstCount();
            Console.WriteLine(InstCount.instanceCount);
        }
    }
}



В этом примере выходная информация будет следующая:
0
1
2
И последнее замечание по статическим членам: у них должно быть некоторое допустимое значение. Его можно задать при определении члена:
static public int instanceCount = 10;
Если вы не инициализируете переменную, это сделает CLR после запуска приложения, установив значение по умолчанию, равное 0. Поэтому следующие строки эквивалентны:
static public int instanceCount;
static public int instanceCount=0;

Предыдущая стр.    Оглавление    Следующая стр.
Средняя оценка: (1 - 2 голосов)
Для оценки необходимо зарегистрироваться


Только зарегистрировавшиеся пользователи могут оставлять комментарии