Может ли конструктор по-умолчанию быть с параметрами, для которых определены значения по-умолчанию. Т.е. будет ли считаться такой конструктор конструктором по-умолчанию?
class Test {
public Test(int a=5){
}
}
Вопрос возник на основе этого вопроса в тесте (несколько верных ответов, нужно обозначить все):
Which of the following are true for C#?
Default constructor is one that does not have any arguments
Default constructor can take arguments but they must have default values specified for them
The compiler automatically generates a default constructor for a user defined class
Здравствуйте, Аноним, Вы писали:
А>Может ли конструктор по-умолчанию быть с параметрами, для которых определены значения по-умолчанию.
Нет, конструктор по-умолчанию — это конструктор без параметров.
А>Вопрос возник на основе этого вопроса в тесте (несколько верных ответов, нужно обозначить все):
А>Which of the following are true for C#?
А> А>Default constructor is one that does not have any arguments А>Default constructor can take arguments but they must have default values specified for them А>The compiler automatically generates a default constructor for a user defined class А>
Верный только 1-й
Re[2]: Конструктор по-умолчанию с параметрами
От:
Аноним
Дата:
21.02.11 12:26
Оценка:
Здравствуйте, QrystaL, Вы писали:
QL>Нет, конструктор по-умолчанию — это конструктор без параметров.
Т.е. вы хотите сказать, что если задать конструктор с параметрами, для которых установлены значения по-умолчанию, то компилятор создаст автоматически еще и конструктор без параметров, который и будет конструктором по-умолчанию?
QL>>Нет, конструктор по-умолчанию — это конструктор без параметров. А>Т.е. вы хотите сказать, что если задать конструктор с параметрами, для которых установлены значения по-умолчанию, то компилятор создаст автоматически еще и конструктор без параметров, который и будет конструктором по-умолчанию?
Нет, конструктор по-умолчанию создается автоматически только в том случае, если в классе нет ни одного конструктора.
Здравствуйте, QrystaL, Вы писали:
А>>Может ли конструктор по-умолчанию быть с параметрами, для которых определены значения по-умолчанию. QL>Нет, конструктор по-умолчанию — это конструктор без параметров.
Либо с единственным 'params' параметром
С уважением, Евгений
JetBrains, Inc. "Develop with pleasure!"
Здравствуйте, xvost, Вы писали:
X>Здравствуйте, QrystaL, Вы писали:
А>>>Может ли конструктор по-умолчанию быть с параметрами, для которых определены значения по-умолчанию. QL>>Нет, конструктор по-умолчанию — это конструктор без параметров.
X>Либо с единственным 'params' параметром
Тогда почему это компилится
public class MyClass
{
public MyClass()
{
}
public MyClass(params object[] args)
{
}
}
Will code C# for food
Re[4]: Конструктор по-умолчанию с параметрами
От:
Аноним
Дата:
21.02.11 13:44
Оценка:
Здравствуйте, 1stein, Вы писали:
1>Тогда почему это компилится
Да там все ясно, мы в любом случае должны передать параметром даже пустой массив.
А почему вот это компилируется?
class Test
{
public Test(int a=5)
{
Console.WriteLine("param");
}
public Test()
{
Console.WriteLine("default");
}
}
Мне вот непонятно. Ведь тут есть неоднозначность вызова.