首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的属性getter setter

C#中的属性getter setter
EN

Stack Overflow用户
提问于 2011-09-24 13:54:53
回答 6查看 4.7K关注 0票数 0

我有一个类库项目。我在那里有一个属性,如下所示。它不是只读属性

代码语言:javascript
运行
复制
 private   Int32 ABC  ;
public Int32   ABCD
        {
            set
            {
                this.ABC = value;
            }
            get
            {
                return this.ABC;
            }
        }

我的问题是,是否有必要为其声明私有变量和getter / setter?

编辑

我的意思是,它会像下面这样吗?

代码语言:javascript
运行
复制
public Int32 ABCD {}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-24 13:59:53

Automatic property声明要求将get; set;语句放在大括号中(这就是您在原始问题中的内容):

代码语言:javascript
运行
复制
public Int32 ABCD { get; set; }

空属性块无效。

票数 5
EN

Stack Overflow用户

发布于 2011-09-24 14:00:22

使用C# 3.0 (VS2008)或更高版本中引入的自动实现属性。

http://msdn.microsoft.com/en-us/library/bb384054.aspx

代码语言:javascript
运行
复制
public Int32 Abcd {get;set;}

编译器会为您创建支持字段。但是,它是匿名的,无法访问。如果以后您发现需要访问支持字段,您可以显式声明它,并使用该字段重新实现getter和setter,而不会破坏接口。

票数 3
EN

Stack Overflow用户

发布于 2011-09-24 14:02:00

使用自动实现的属性,它是从2008年引入的:

代码语言:javascript
运行
复制
    public Int   ABCD
    {
        set;
        get;
    }

但不同之处在于缺省值,即在带有支持字段的属性中,您可以在变量中设置默认值,但在这种情况下,默认值是.net默认值。(实际上,你应该在构造函数中初始化它作为默认值)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7537328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档