在为C#项目设计类结构时,我想到了一个有趣的问题,希望在完成设计之前能对此有所了解。这是我正在谈论的概念的模板设计:
class TemplateClass
{
public TemplateClass(int input1 = 0, string input2 = "")
{
field1 = input1;
field2 = input2;
}
public TemplateClass()
{
field1 = 0;
field2 = "";
}
public int field1;
public string field2;
}
就我正在做的目的而言,这似乎是一个非常方便的设计,但是我很好奇这是否由于任何原因被认为是不好的做法。
答案 0 :(得分:1)
无论如何,由于您的字段是公共的,所以我看不到构造函数为其添加的任何值,因为您可以在构造期间指定它们:
new TemplateClass();
new TemplateClass { field1 = 17 };
new TemplateClass { field2 = "hello" };
new TemplateClass { field2 = "world", field1 = 42 };
您班级的代码将减少为:
class TemplateClass
{
public int field1 = 0;
public string field2 = "";
}
请注意,除非您打算将这些字段用作某个地方的ref
参数,否则我还将它们转换为public int Field1 { get; set; }
之类的属性。