ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы курсы по программированию логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: ironMan
9. августа 2011 01:06

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



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);
}
}
}



После запуска программа выведет результат:

55

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

( отрывок из книги В. В. Лабор "Си Шарп: Создание приложений для Windows" )


Если скучно тебе стало, то можно онлайн тв бесплатно смотреть.

Похожие записи


Изолированные классы в C#
Если вы хотите быть уверены, что класс никогда не будет использован как базовый, при определении класса примените модификатор sealed. Единственное ограничение: абстрактный класс не может быть изолированным, так как в силу своей природы предназначен для использования в качестве базового. И еще. Хотя изолированные классы предназначены для предотвращения непреднамеренног...

Как создать сборку в памяти и использовать ее классы отражением (reflection) на C# ?
Продолжаю тему загрузки плагинов из БД, начатую в предыдущих моих постах. Недавно на работе пришлось написать небольшой движок запускающий плагины на C#. Плагины хранились в виде classlib сборки (DLL). Они хранились в поле varchar(max) в таблице MS SQL Server. Соответственно после загрузки данных в массив байтов нужно было создать сборку в памяти, потом создать ...

Виртуальные свойства в C#
Свойства, как и методы, могут быть перегружены в производных классах. Для свойств также могут задаваться модификаторы virtual, override или abstract. Подробно о наследовании говорилось в главе «Методы», сейчас я лишь хочу еще раз привести подробный пример использования механизма виртуализации с применением свойств: [code:c#] using System; enum COLORS { RE...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий