n l n i t i a l A c c o u n t N u m b e r = + + n N e x t A c c o u n t N u m b e r ;
} |
= n l n i t i a l A c c o u n t N u m b e r ; |
nAccountNumber |
// Начинаем с |
п е р е д а н н о г о б а л а н с а ( е с л и он |
//положительный)
if ( d l n i t i a l B a l a n c e < 0)
{
d l n i t i a l B a l a n c e = 0;
}
dBalance = |
d l n i t i a l B a l a n c e ; |
} |
|
public s t r i n g |
G e t S t r i n g ( ) |
{
r e t u r n S t r i n g . F o r m a t ( " # { 0 } = { l : N } " ,
n A c c o u n t N u m b e r , d B a l a n c e ) ;
Как только вы определили собственный конструктор — не имеет значения, ка кого именно типа, С# больше не создает конструктор по умолчанию для вашего класса. Поэтому нужно самим определить конструктор без параметров в этой демонстрационной программе.
В приведенной выше демонстрационной программе B a n k A c c o u n t W i t ^ h M u l t i - pleConstructors имеются три конструктора:
первый назначает номер счета и нулевой баланс;
второй назначает номер счета и инициализирует баланс переданным положитель ным значением (отрицательные значения игнорируются);
третий позволяет пользователю самостоятельно определить номер счета и поло жительный начальный баланс.
Функция Main () создает различные банковские счета с использованием каждого из ipex конструкторов и выводит информацию о созданных объектах. Вывод этой про чимы на экран имеет следующий вид:
#1001 = 0 . 0 0 #1002 = 1 0 0 . 00
# 1 2 3 4 = 2 0 0 0 0
Н а ж м и т е < E n t e r > дл я з а в е р ш е н и я п р о г р а м м ы . . .
В реальных классах требуется выполнять более строгую проверку входных па раметров конструктора, чтобы гарантировать их корректность.
Конструкторы различаются между собой по тем же правилам, что и перегруженные функции. Первый объект, конструируемый в функции Main ( ) , b a l , создается без аргументов, так что для него вызывается первый конструктор B a n k A c c o u n t ( ) , не получающий аргументов (он все еще именуется конструктором по умолчанию, хотя и не создается С# автоматически). Соответственно, этот счет получает номер по умолчанию и нулевой ба-