Вход/Регистрация
C# 4.0 полное руководство - 2011
вернуться

Шилдт Герберт

Шрифт:

using MyCounter = Counter.CountDown;

После того как псевдоним будет определен в качестве другого имени класса Counter. CountDown, его можно использовать для объявления объектов без дополнительного определения имени данного класса. Например, в следующей строке кода из рассматриваемой здесь программы создается объект класса CountDown.

MyCounter cdl = new MyCounter (10);

Аддитивный характер пространств имен

П04 одним именем можно объявить несколько пространств имен. Это дает возможность распределить пространство имен по нескольким файлам или даже разделить его в пределах одного и того же файла исходного кода. Например, в приведенной ниже программе два пространства имен определяются под одним и тем же именем Counter. Одно из них содержит класс CountDown, а другое — класс CountUp. Во время компиляции содержимое обоих пространств имен Counter складывается.

// Аддитивный характер пространств имен, using System;

// Сделать видимым пространство имен Counter, using Counter;

// Это одно пространство имен Counter.

namespace Counter {

// Простой вычитающий счетчик, class CountDown { int val;

public CountDown(int n) { val = n;

}

public void Reset(int n) { val = n;

}

public int Count {

if(val > 0) return val—; else return 0;

}

}

}

//А это другое пространство имен Counter, namespace Counter {

// Простой суммирующий счетчик, class CountUp { int val; int target;

public int Target { get{

return target;

}

}

public CountUp(int n) { target = n; val = 0;

}

public void Reset(int n) { target = n; val = 0;

}

public int Count {

if(val < target) return val++;

else return target;

}

}

}

class NSDemo5 {

static void Main {

CountDown cd = new CountDown(10); CountUp cu = new CountUp(8);

int i; do {

i = cd.Count ;

Console^.Write (i + " ;

} -while (i > 0) ;

Console.WriteLine ;

do {

i = cu.Count ;

Console.Write(i + " ");

} while(i < cu.Target);

}

}

Вот к какому результату приводит выполнение этой программы.

10 9876543210 012345678

Обратите также внимание на то, что директива

using Counter;

делает видимым все содержимое пространства имен Counter. Это дает возможность обращаться к классам CountDown и CountUp непосредственно, т.е. без дополнительного указания пространства имен. При этом разделение пространства имен Counter на две части не имеет никакого значения.

Вложенные пространства имен

Одно пространство имен может быть вложено в другое. В качестве примера рассмотрим следующую программу.

// Вложенные пространства имен.

using System;

namespace NS1 { class ClassA {

public ClassA {

Console.WriteLine("Конструирование класса ClassA");

}

}

namespace NS2 { // вложенное пространство имен class ClassB {

  • Читать дальше
  • 1
  • ...
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: