繁体   English   中英

在C#类中声明公共变量和私有变量的区别

[英]Difference in declaring public and private variables in a C# class

我有一个如下示例:

public static String DocNum
{
    get;
    set;
}

private static String DocNum2;
public static String DocNum2GetSet {
    get
    {
        return DocNum2;
    }
    set
    {
        DocNum2 = value;
    }
}

我想知道一个声明是否有益于另一个。 简单的问题,希望有一个简单的答案。

用法没有区别; 只是第一个代码更加整洁,因此更易于编写和阅读。 如果您需要添加任何其他代码,例如验证或在setter中引发事件,则需要第二个代码。

在第二种情况下,您将提供一致的API,以后您可以在其中修改基础结构,而不必让使用者更改其代码。

例如,现在您正在将DocNum2存储在私有字符串中。 您以后可以修改它,以从文件或其他资源中获取数据,而使用代码的人再合适不过了。

第一个示例称为“ 自动实现的属性” 这是完整属性的简写,这是您的示例的第二个。 C#3.0及更高版本中有效。

通常就足够了,但是如果您需要自定义逻辑或验证,通常会使用full属性。 在执行实现INotifyPropertyChanged时,还将使用full属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM