progs.biz  
Начало > C# > Основы > Урок 45
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Разработка WEB-сервисов XML и серверных компонентов на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
 Разработка WEB-сервисов XML и серверных компонентов на Visual Basic.NET и Visual C#.NET. Учебный курс MCAD/MCSD.
Заказать на Озоне



Яндекс-цитирования

Основы C#. Урок 45. Ссылка на текущий экземпляр класса (this)

Ссылка на текущий экземпляр класса делается через ключевое слово this. Вот традиционный пример:

    class SomeClass
    {
        public int a;
        SomeClass(int a)
        {
            this.a=a;
        }
    }

В этом примере у нас и переменная класса, и параметр метода названы одинаково - a. Для уточнения, что мы используем именно переменную класса, а не параметр метода, и служит слово this.

В C++ же для избегания конфликта имен обычно к переменной класса прибывлялся префикс m_.

Еще одна возможность по использованию ключевого слова this - это вызов одного конструктора из другого. Вот пример:

    class SomeClass
    {
        public int a;
        public int b;
        //Конструктор с 2-я параметрами.
        public SomeClass(int a, int b)
        {
            this.a=a;
            this.b=b;
        }
        //Конструктор без параметров,
        //вызывающий конструктор с 2-я параметрами.
        public SomeClass():this(1, 1)
        {
        }
        
    }
    //Тестовый класс.
    class App
    {
        static void Main()
        {
            SomeClass s=new SomeClass();
            Console.WriteLine("a={0}, b={0}", s.a, s.b);
        }
    }

Здесь в классе SomeClass два конструктора. Второй конструктор (без параметров) вызывает первый (передавая в него значения 1 и 1):

...
public SomeClass():this(1, 1)
...

Указанный фрагмент выведет, разумеется, a=1, b=1.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz

 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь