Создание конструкторов
От: Sad_KirK  
Дата: 15.11.06 19:45
Оценка:
У меня такой вопрос.
Допустим есть такой код на C#.

class SomeClass
{
SomeClass()
{
// код выполняемый по-умолчанию
}

SomeClass(Param1 param1):this()
{
// код инициализации с параметром 1
}

SomeClass(Param2 param2):this()
{
// код инициализации с параметром 2
}

SomeClass(Param1 param1, Param2 param2)
{
// Могу ли я сделать вызов сначала
// SomeClass(param1), а потом
// SomeClass(param2)???
}
}
Re: Создание конструкторов
От: AThe  
Дата: 16.11.06 06:32
Оценка:
Здравствуйте, Sad_KirK, Вы писали:

S_K>У меня такой вопрос.

S_K>Допустим есть такой код на C#.

S_K>class SomeClass

S_K>{
S_K> SomeClass()
S_K> {
S_K> // код выполняемый по-умолчанию
S_K> }

S_K> SomeClass(Param1 param1):this()

S_K> {
S_K> // код инициализации с параметром 1
S_K> }

S_K> SomeClass(Param2 param2):this()

S_K> {
S_K> // код инициализации с параметром 2
S_K> }

S_K> SomeClass(Param1 param1, Param2 param2)

S_K> {
S_K> // Могу ли я сделать вызов сначала
S_K> // SomeClass(param1), а потом
S_K> // SomeClass(param2)???
S_K> }
S_K>}

А что если переписать так?

class SomeClass
{
    SomeClass(Param1 param1, Param2 param2)
    {
    }
    SomeClass() : this(param1_default,param2_default)
    {
    }
    SomeClass(Param1 param1) : this(param1,param2_default)
    {
    }
    SomeClass(Param2 param2) : this(param1_default,param2)
    {
    }
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Создание конструкторов
От: Аноним  
Дата: 16.11.06 06:43
Оценка:
Чет мутновато написанно (вопрос), но если я тя правильно понял, то вызывай из первого конструктора 2-й...


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Создание конструкторов
От: Andrew_ImP  
Дата: 16.11.06 07:51
Оценка:
Здравствуйте, Sad_KirK, Вы писали:

S_K>У меня такой вопрос.

S_K>Допустим есть такой код на C#.

S_K>class SomeClass

S_K>{
. . .
S_K> SomeClass(Param2 param2):this()
S_K> {
S_K> // код инициализации с параметром 2
S_K> }

S_K> SomeClass(Param1 param1, Param2 param2)

S_K> {
S_K> // Могу ли я сделать вызов сначала
S_K> // SomeClass(param1), а потом
S_K> // SomeClass(param2)???
S_K> }
S_K>}

Вынеси этот "код инициализации с параметром 1" и "код инициализации с параметром 2" в отдельные приватные методы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.