如何访问一个自动实现的属性的支持变量?

编程入门 行业动态 更新时间:2024-10-15 16:23:47
本文介绍了如何访问一个自动实现的属性的支持变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在过去,我们声明如下属性:

In the past we declared properties like this:

public class MyClass { private int _age; public int Age { get{ return _age; } set{ _age = value; } } }

现在我们可以做的:

public class MyClass { public int Age {get; set;} }

我的问题是,我怎么能访问私有变量,使用这个符号自动创建的?

My question is, how can I access the private variable that is created automatically using this notation?

我宁愿访问私有变量,而不是公共存取'年龄'。是否有一个默认的表示法访问私有变量,或者它仅仅是不可能的?

I would rather access the private variable and not the public accessor 'Age'. Is there a default notation to access the private variable, or it is just not possible?

推荐答案

新的自动属性的目的是减少样板代码,你需要写的时候你只需要一个简单的属性,这并不需要在GET或设定任何特殊的逻辑量。

The aim of the new automatic properties is to reduce the amount of boilerplate code you need to write when you just have a simple property that doesn't need any special logic in the get or the set.

如果您要访问这些属性使用私有成员,这通常有几个原因:

If you want to access the private member that these properties use, that's usually for a few reasons:

  • 您需要的不仅仅是一个简单的get / set更多 - 在这种情况下,你应该避免使用自动属性此成员
  • 您想避免的。通过走吧或设置而直接使用成员的性能影响 - 在这种情况下,我会感到惊讶,如果真有性能损失。简单的get / set成员非常非常容易内联,并在我的(诚然有限)测试中,我还没有发现使用自动属性,直接访问成员之间的差异。
  • 您只需要拥有公共读取权限(也就是,只有'得到')和类写成员直接 - 在这种情况下,你可以使用一个私人一套您的自动财产。 。即

  • You need to more than just a simple get/set - in this case, you should just avoid using automatic properties for this member.
  • You want to avoid the performance hit of going through the get or set and just use the member directly - in this case, I'd be surprised if there really was a performance hit. The simple get/set members are very very easy to inline, and in my (admittedly limited) testing I haven't found a difference between using the automatic properties and accessing the member directly.
  • You only want to have public read access (i.e. just a 'get') and the class write to the member directly - in this case, you can use a private set in your automatic property. i.e.

public class MyClass { public int Age {get; private set;} }

这通常包括最原因希望获得直接由自动属性用于支持字段。

This usually covers most the reasons for wanting to directly get to the backing field used by the automatic properties.

更多推荐

如何访问一个自动实现的属性的支持变量?

本文发布于:2023-06-08 21:33:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/589444.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   属性

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!