Основы 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:
|