Вложенные классы
Конструктор сайтов - uCoz
Меню сайта


Поиск по сайту
Loading


Форма входа


Помощь проекту

PayPal:

LiqPay or Credit/Debit Card:

W1 "Единый кошелек":
199990419310
WebMoney:
WME - E509190786817
WMZ - Z195499640086
WMU - U204403357554
WMR - R280087882619




Активные темы

  • Все вопросы касающиеся Neil Scope (6423)
  • Продам плату Neil Scope 3 rev 3.2 (1)
  • Заказ плат под NeilScope3 (12.2015) (59)
  • Первое знакомство с микроконтроллерами Silabs (105)
  • инвертор на микропроцессоре с 12\220v с синусом на выходе (2)
  • Куплю плату NS-3 (0)
  • Подскажите (0)
  • Осваиваем LPC2478... (1)
  • Мелкие вопросы по МК51 от SiLabs-a.. (40)
  • Детали для Neil Scope 2 (0)



  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0



    Рекомендуемые браузеры: Mozzilla, Google Chrome






    Приветствую Вас, Пробегающий мимо · RSS 22.09.2017, 04:39

    Основы C#. Урок 14. Вложенные классы

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

    using System;
    namespace test
    {
     class ClassA
     {
     //Вложенный класс
     private class ClassB
     {
     public int z;
     }
     //Переменная типа вложенного класса
     private ClassB w;
     //Конструктор
     public ClassA()
     {
     w=new ClassB();
     w.z=35;
     }
     //Некоторый метод
     public int SomeMethod()
     {
     return w.z;
     }
     }
     class Test
     {
     static void Main(string[] args)
     {
     ClassA v=new ClassA();
     int k=v.SomeMethod();
     Console.WriteLine(k);
     }
     }
    }

    Здесь класс ClassB объявлен внутри класса ClassA. Объявлен он со словом private, так что его экземпляры мы можем создавать только внутри класса ClassA (что мы и делаем в конструкторе класса ClassA). Методы класса ClassA имеют доступ к экземпляру класса ClassB (как, например, метод SomeMethod).

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

    Обратите также внимание, как вложенные классы показываются на вкладке ClassView:

    Вкладка ClassView