Tag: 自动属性

如何防止自动实现的属性被序列化?

我怎样才能防止二进制格式化程序自动实现的属性被序列化? [NonSerialized]属性只能与字段一起使用。 当使用自动实现的属性时,该字段被隐藏。

C#自定义getter / setter没有私有variables

我最近学习了c#,所以当我学会编写属性的时候,我被教导要这样做: public string Name { get; set; } 汽车性能是伟大的! 但是现在我试图做一些更复杂的事情,所以我需要编写一个自定义的访问器对。 private string _Name; public string Name { get { return _Name; } set { _Name = value } } 我知道编译器在使用汽车的时候使得一个私有的实例variables在黑暗的深处变暗,但是我被宠坏了,并且不希望这个私有variables看起来毫无意义。 有没有办法使用自定义访问没有私有variables?

xCode 6如何解决“使用未声明的标识符”进行自动属性综合?

我正在使用xCode6 Beta 3,并遇到以前编译好的代码(xCode 5.1.1或xCode6 beta 2)在访问自动合成的实例variables时突然开始给我“使用未声明的标识符”错误: – (void)setFinished:(BOOL)finished { [self willChangeValueForKey:@"isFinished"]; _finished = finished; [self didChangeValueForKey:@"isFinished"]; } //ERROR: Use of undeclared identifier '_finished'; did you mean 'finished'? 添加@synthesize finished = _finished; 使错误消失,但有没有办法强制xCode6 Beta 3使用自动属性综合使用下划线表示法?

C#自动属性 ​​- 为什么我必须写“get; 组;”?

如果在C#自动属性中都强制使用get和set,为什么还要指定“get; set” 在所有?

C#自动属性

我有点困惑在C#中的自动属性点 public string Forename{ get; set; } 我知道你是通过不必声明私有variables来保存代码,但是当你不使用任何获取或设置逻辑时,属性的意义何在? 为什么不使用 public string Forename; 我不确定这两个语句之间有什么区别,如果你想要额外的获取/设置逻辑,我总是认为你使用了属性?

为什么有必要调用:这个()结构在c#中使用自动属性?

如果我使用这样的自动属性在C#中定义一个结构: public struct Address { public Address(string line1, string line2, string city, string state, string zip) { Line1 = line1; Line2 = line2; City = city; State = state; Zip = zip; } public string Line1 { get; protected set; } public string Line2 { get; protected set; } public string City { get; protected […]

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;}

初始化C#自动属性

我习惯于这样写类: public class foo { private string mBar = "bar"; public string Bar { get { return mBar; } set { mBar = value; } } //… other methods, no constructor … } 将Bar转换为自动属性看起来方便简洁,但是如何在不添加构造函数的情况下保留初始化并将初始化放在那里呢? public class foo2theRevengeOfFoo { //private string mBar = "bar"; public string Bar { get; set; } //… other methods, no constructor […]

JSON的C#自动属性反序列化

我需要将以JSON表示的一些JavaScript对象反序列化为适当的C#类。 鉴于自动属性的好处,我宁愿让他们在这些类,而不是只有字段。 不幸的是,.NET序列化引擎(至less在默认情况下)完全忽略了反序列化的自动属性,只关心后台字段,这在JavaScript对象中显然不存在。 鉴于没有标准的方式来命名支持字段 ,说实话,我甚至不想打扰“让我们创build一个看起来像它有C#支持领域的JavaScript对象”的方法,因为它听起来有点肮脏,唯一的方法我可以将JavaScript字段序列化为C#自动属性,如果我可以强制序列化引擎以某种方式忽略后台字段并直接使用该属性。 不幸的是,我无法弄清楚这是如何完成的,或者是否可以完成。 任何想法,将不胜感激。 编辑 :这里是一个例子: 使用Javascript: function Cat() { this.Name = "Whiskers"; this.Breed = "Tabby"; } var cat = new Cat(); 然后将其序列化为“{Name:'Whiskers'}”。 C#类: [Serializable()] public class Cat { public string Name { get; set; } public string Breed { get; set; } } 而反序列化代码,失败了: new DataContractJsonSerializer(typeof(Cat)).ReadObject(inputStream); 从例外情况看,它显然是因为它正在寻找支持领域而失败。 编辑2 :这是例外,如果有帮助(没有内部例外): System.Runtime.Serialization.SerializationException “数据协定types”Test.Cat“不能被反序列化,因为找不到所需的数据成员<Name>k__BackingField, […]

C#中的自动属性是什么?它们的目的是什么?

有人可以提供一个非常简单的解释在C#自动属性,他们的目的,也许一些例子? 请尽量保持外行的态度。