Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET.


Информационный Канал Subscribe.Ru

C# и .NET. Уроки с сайта http://progs.biz

Рассылка №10

Основы C#. Урок 21. Статические переменные.
Основы C#. Урок 22. Статические методы класса.

Полные версии уроков (с картинками) можно найти по адресам
Урок 21. Статические переменные.
Урок 22. Статические методы класса.

Основы C#. Урок 21. Статические переменные

Обычно переменные класса принадлежат конкретному экземпляру класса. Для обращения к таким переменным мы пишем что-то вроде

MyClass z;
k=z.data;

Здесь переменная data принидлежит классу MyClass. Для каждого экземпляра класса она своя.

Наряду с обычными переменными существуют и статические переменые класса. Их основное отличие от обычных переменных в том, что они относятся к классу целиком. Т. е. на все экземпляры класса у нас есть только одна переменая. Получить доступ к такой переменой можно только для самого класса без создания его экземпляра. Через конкретный же экземпляр класса доступа к такой перемнной нет. Т. е. использовать такую статическую переменную можно только для самого класса без создания экземпляра.

Для объявления переменной статический надо использовать ключевое слово static. Вот пример:

    class MyClass
    {
        //Статическая переменная
        public static int data;
        //Конструктор
        public MyClass()
        {
            data++;
        }

    }
    class Test
    {
        public static void Main()
        {
            MyClass a=new MyClass();
            MyClass b=new MyClass();
            System.Console.WriteLine(MyClass.data);
        }
    }

Указанный фрагмент выведет на экран, естественно, 2 (переменая data увеличится в кждом из двух конструкторов).

Наверх

Основы C#. Урок 22. Статические методы класса

На предыдущем уроке мы рассмотрели статические переменные класса. При этом наша переменная data была объявлена как public. Это не слишком хорошо - переменные класса лучше прятать от посторонних глаз. Но, так как доступ к нашей переменной нам все-таки нужен, то мы добавим в наш класс функции для чтения и записи переменной data. Вот новый вариант нашего класса:

    class MyClass
    {
        //Статическая переменная
        static int data;
        //Статический метод для чтения переменной
        public static int GetData()
        {
            return data;
        }
        //Статический метод для записи переменной
        public static void SetData(int newData)
        {
            data=newData;
        }
        //Конструктор
        public MyClass()
        {
            data++;
        }

    }
    class Test
    {
        public static void Main()
        {
            MyClass a=new MyClass();
            MyClass b=new MyClass();
            //Вызов статического метода GetData
            System.Console.WriteLine(MyClass.GetData());
            //Вызов статического метода SetData
            MyClass.SetData(5);
            System.Console.WriteLine(MyClass.GetData());
        }
    }

Указанный фрагмент выведет, разумеется, 2 и 5.

Обратите внимание, что к статическим переменным и методам мы всегда получаем доступ через имя класса, а к нестатическим - через экземпляр класса. Но это не значит, что мы не имеем доступа к статическим переменным класса из нестатических методов класса - имеем, и даже у нас есть пример этому - конструктор нашего класса MyClass.

Наверх
Рассылки сайта progs.biz:
Рассылки Subscribe.Ru
Сайтостроение (уроки по HTML, PHP, MySQL, веб-дизайну)

Уроки по созданию сайта - HTML, PHP, JavaScript, PhotoShop, ASP, работа с базами данных, скрипты, SSI, Flash, использование HTML-редакторов (Dreamweaver, Homesite). Каждый урок рассчитан на 10-15 минут. Каждая серия уроков независима от других.


Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное