我有一段时间没有编程,所以我忘了一些东西。
我有一个“昆德”课程。有一些变数:
class Kunde
{
private string _navn;
private string _adresse;
private int _postnr;
private string _by;
private int _telefonnr;
private int _mobil;
private string _email;
private string _land;
private string _oplysning;
private int _kundenr;
//Erhverv:
private int _cvr;
private string _firmanavn;
private string _kontaktperson;
//Tom konstruktør
public Kunde()
{
}
//privat
public Kunde(string navn, string adresse, int postnr, string by, int telefonnr, int mobil, string email, string land, string oplysning, int kundenr)
{
_navn = navn;
_adresse = adresse;
_postnr = postnr;
_by = by;
_telefonnr = telefonnr;
_mobil = mobil;
_email = email;
_land = land;
_oplysning = oplysning;
_kundenr = kundenr;
}
}
}
我的问题是..我有一个带有一些文本字段的winform,但不是每个字段都必须填充数据..
是否应该对每个变量进行get / set以便能够从另一个类设置变量 - 或者每个选项的构造函数?
最好的办法是什么?
答案 0 :(得分:2)
为每个成员提供Get和可选的Set访问器。
您必须从表单中选择某种形式的DataBinding + Validation。但Customer类有自己的设计和自己的逻辑。
答案 1 :(得分:2)
在C#4.0中,您可以在调用构造函数时指定属性的值。
var kunde = new Kunde()
{
Navn = navn,
Adresse = adresse,
// all your properties
};
为每个字段创建get
/ set
个访问者,然后您可以指定要设置的属性,如上所述。
答案 2 :(得分:1)
您最好只保留默认构造函数,并为需要读取或设置的每个数据创建公共属性。
您可以使用参数保留构造函数 - 但仅限于为每个Kunde-n强制填充的参数。
如果您计划将Kunde对象直接绑定到某些BindingSource并显示它们,例如在某种网格/列表和/或树视图中,您还可以考虑实现一些相关的接口:System.ComponentModel.IdataErrorInfo; System.ComponentModel.INotifyPropertyChanged;
并且您可以将cosider应用于您的公共属性 - 例如System.ComponentModel.DisplayNameAttribute; - 它可以在DataGrid中定义标题的固定名称或it might be localized for different languages
答案 3 :(得分:1)
public string Adresse { get; private set; }
等你有一个自动变量,除了在课堂内以外是只读的。