设置变量 - 构造函数/ get / set C#

时间:2011-10-01 13:01:34

标签: c# constructor

我有一段时间没有编程,所以我忘了一些东西。

我有一个“昆德”课程。有一些变数:

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以便能够从另一个类设置变量 - 或者每个选项的构造函数?

最好的办法是什么?

4 个答案:

答案 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; }等你有一个自动变量,除了在课堂内以外是只读的。