C# Constructor Call Call: Эффективная и гибкая инициализация объекта
]]в объектно-ориентированном программировании конструктор отвечает за инициализацию и настройку вновь созданных объектов. C# поддерживает мощную функцию: Constructor Chain Calls, позволяя конструкторам вызывать другие конструкторы в том же классе. Это может значительно упростить инициализацию объекта и улучшить обслуживание кода.
]давайте поймем вызовы цепочки конструктора в C# с простым примером:
]public class SomeClass
{
private int _someVariable;
public SomeClass()
{
_someVariable = 0;
}
public SomeClass(int value) : this()
{
this._someVariable = value;
// 通过链式调用默认构造函数来设置其他属性
}
}
_ Somevariable до 0; Важно отметить, что перегруженный конструктор использует цепочку синтаксиса this ()
, чтобы вызвать конструктор по умолчанию, чтобы установить публичные свойства всех экземпляров someclass
. ]
Используйте конструкторы в этом сценарии. Имеет много преимуществ. Во -первых, это уменьшает дублирование кода и избегает написания одного и того же кода инициализации в нескольких конструкторах. Во -вторых, это обеспечивает согласованность, заставляя все объекты (независимо от того, какой создан конструктор) иметь одинаковое значение свойства. ]
Constructor Chain Calls также могут быть расширены до трех или более конструкторов. Например:
открытый класс foo { private int _id; Приватная строка _name; public foo (): this (0, "") {} public foo (int id, имя строки) { _id = id; _name = name; } public foo (int id): this (id, "") {} public foo (string name): this (0, name) {} }
public class Foo
{
private int _id;
private string _name;
public Foo() : this(0, "") { }
public Foo(int id, string name)
{
_id = id;
_name = name;
}
public Foo(int id) : this(id, "") { }
public Foo(string name) : this(0, name) { }
}
] Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3