У меня есть следующий классфорсирование класс использовать конструктор
class MyClass
{
string _val1 = null;
string _val2 = null;
string _val3 = null;
public string Val1{get;set;}
public string Val2{get;set;}
public string Val3{get;set;}
public MyClass(){}
public MyClass(string val_id1, string val_id2 = null, string val_id3 = null)
{
//do some stuff.. set _val1,_val2,_val3
}
}
Мое намерение состоит, чтобы позволить ему быть созданы с помощью одного из следующих методов ..
//using parameterized constructor
MyClass TestMyClass1 = new MyClass("v1");
MyClass TestMyClass1 = new MyClass("v1","v2");
//using default constructor and setting values
MyClass TestMyClass2 = new MyClass();
TestMyClass.Val1 = "my_test_value1";
TestMyClass.Val2 = "my_test_value2";
TestMyClass.Val3 = "my_test_value3";
Это похоже на работу достаточно, но мне нужно заставить некоторую логику, когда значение задано явно с использованием конструктора по умолчанию, а затем присваивает явные значения объекту. Например, мне нужно использовать логику в параметризованном конструкторе, даже если кто-то говорит TestMyClass.Val1 = "my_test_value1"
.
Таким образом, если Val1
явно задан, то для заполнения объекта необходимо использовать блок кода //do some stuff.. set _val1,_val2,_val3
. Каков правильный способ сделать это?
@Zack, нет, это не похоже на дубликат этого вопроса. – Habib
Используйте шаблон фабрики. –
@ stumped221, зачем вам это нужно, вы можете пометить свои свойства как * только для чтения * и разрешить их только через конструкторы. – Habib