Questions tagged «automatic-properties»

11
公共字段与自动属性
人们经常被告知,我们应该通过为类字段创建getter和setter方法(C#中的属性)来保护封装,而不是将字段暴露给外界。 但是在很多情况下,只有一个字段可以保存一个值,而无需获取或设置任何计算。对于这些,我们都将使用以下数字: public class Book { private string _title; public string Title { get{ return _title; } set{ _title = value; } } } 好吧,我有一个坦白的话,我忍不住写所有的东西(真的,不必写它,而不必去看它),所以我流氓并使用了公共领域。 然后是C#3.0,我看到它们添加了自动属性: public class Book { public string Title {get; set;} } 哪个比较整洁,我对此很感激,但实际上,与仅公开场地有何不同? public class Book { public string Title; }

18
C#3.0自动属性-是否有用?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 注意:这是我刚开始使用C#时发布的。凭借2014年的知识,我可以真正地说出,自动属性是C#语言有史以来最好的事情之一。 我习惯于使用私有字段和公共字段在C#中创建属性: private string title; public string Title { get { return title; } set { title = value; } } 现在,在.NET 3.0中,我们获得了自动属性: public string Title { get; set; } 我知道这更多是一个哲学/主观的问题,但是除了为每个字段保存五行代码外,是否有任何理由使用这些自动属性?我个人的抱怨是,这些财产对我来说是藏起来的东西,而且我不是黑魔法的忠实拥护者。 实际上,隐藏的私有字段甚至不会显示在调试器中,考虑到get / set函数什么都不做的事实,这是可以的。但是,当我想实际实现一些getter / setter逻辑时,无论如何我都必须使用私有/公共对。 我看到的好处是,我节省了很多代码(一行vs六行),而不会在以后失去更改getter / setter逻辑的能力,但是话又说回来,我已经可以通过简单地声明一个公共字段“ Public string Title”来做到这一点。 {获取;组; }块,从而节省更多代码。 那么,我在这里想念什么?为什么有人实际上要使用自动属性?

10
C#3.0+中属性和字段之间的区别
Наэтотвопросестьответына 堆栈溢出нарусском:Длячегонужнысвойства? 我意识到这似乎是C#中的字段和属性之间的区别是什么的副本?但是我的问题(从我的角度来看)略有不同: 一旦我知道 我不会将我的课程与“仅适用于房地产的技术”结合使用,并且 我不会在getter / setter中使用验证代码。 有什么区别(样式/未来开发除外),例如设置属性时的某种控件? 之间是否还有其他区别: public string MyString { get; set; } 和 public string myString; (我知道,第一个版本需要C#3.0或更高版本,并且编译器确实会创建专用字段。)

12
C#延迟加载的自动属性
在C#中 有没有一种方法可以将自动属性转换为具有指定默认值的延迟加载的自动属性? 本质上,我正试图扭转这一局面... private string _SomeVariable public string SomeVariable { get { if(_SomeVariable == null) { _SomeVariable = SomeClass.IOnlyWantToCallYouOnce(); } return _SomeVariable; } } 变成不同的东西,在这里我可以指定默认值,它会自动处理其余的... [SetUsing(SomeClass.IOnlyWantToCallYouOnce())] public string SomeVariable {get; private set;}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.