Ответ 1
Первый из них не является законным в С#. Единственными двумя элементами, которые могут появиться после двоеточия в конструкторе, являются base
и this
.
Итак, я бы пошел со вторым.
Класс A использует список инициализаторов, чтобы установить член в значение параметра, тогда как класс B использует назначение внутри тела конструктора.
Может ли кто-нибудь дать какие-либо основания предпочесть друг другу, если я согласен?
class A
{
String _filename;
A(String filename) : _filename(filename)
{
}
}
class B
{
String _filename;
B(String filename)
{
_filename = filename;
}
}
Первый из них не является законным в С#. Единственными двумя элементами, которые могут появиться после двоеточия в конструкторе, являются base
и this
.
Итак, я бы пошел со вторым.
Вы имели в виду С++ вместо С#?
Для С++ списки инициализаторов лучше, чем назначение по нескольким причинам: