在C#中更简单的使用Get/Set方式?

4

嘿,我目前正在为大学编写程序,创建类时我正在使用get set方法。我的问题是,有没有比下面所示的方法更简单的设置方式。

代码片段展示了我目前的方式:

    private string customer_first_name;
    private string customer_surname;
    private string customer_address;
    public DateTime arrival_time;

//Using accessors to get the private variables
//Using accessors to set the private variables

    public string Customer_First_Name
    {
        get { return customer_first_name; }
        set { customer_first_name = value; }
    }

感谢您的答案,节省了不少时间。 - TAM
3个回答

9

使用自动属性代替:

public string Customer_First_Name { get; set; }

在这种情况下,编译器将生成用于存储属性值的字段。
顺便提一下,如果您在Visual Studio中使用prop代码片段,甚至可以节省更多时间。只需开始输入prop并按Tab键,它就会粘贴自动生成的属性片段。您需要提供的仅是属性名称和类型。

1
使用 prop 确实非常方便,提供类型后按下 Tab 键将循环到下一个标记的“项”,这适用于所有片段。对于仍需要支持字段的情况,propfull 非常方便,对于 WPF 中的 propd 也非常方便。 - Silvermind
代码运行良好,但如果您在getter/setter中有任何代码或更改了访问修饰符...您可以使用其他代码片段或手动编辑它们。 - Bart Czernicki
@BartCzernicki 正如Silvermind所说,有一个名为propfull的代码片段,它可以创建带有后备字段的属性,节省时间。 - Sergey Berezovskiy
嗯...奇怪,我直到现在才看到那个评论。我的错,我猜。 - Bart Czernicki

1
public string Customer_First_Name { get; set; }

如果您的getter/setter不需要任何逻辑,那么这就足够了。


0
public string Customer_First_Name {get; set;}

那样做也会隐式地为您创建一个基础字段。

1
好的,嗯,customer_first_name(除非规范最近有变化)不会被声明,编译器将自动生成一个字段来保存该值,但没有可访问的名称。 - Joachim Isaksson
然而,在VB中,该字段是可访问的,但不会在智能感知中显示。它的名称是属性名称前缀加“_”。 - Olivier Jacot-Descombes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接