automatic-properties相关内容
我正在使用xCode6 Beta 3,遇到一个问题,在访问自动合成的实例变量时,以前编译得很好的代码(Xcode 5.1.1或xCode6 Beta 2)突然开始给我“使用未声明的标识符”错误: - (void)setFinished:(BOOL)finished { [self willChangeValueForKey:@"isFinished"]; _finished
..
有人可以提供一个非常简单的 C# 中自动属性的解释,它们的用途,也许还有一些例子?请尽量保持通俗易懂! 解决方案 在属性访问器中不需要额外逻辑时使用自动属性. 声明看起来像这样: public int SomeProperty { get;放;} 它们只是语法糖,因此您无需编写以下更冗长的代码: private int _someField;公共 int SomeProperty
..
如何为 C# 自动属性赋予初始值? 我要么使用构造函数,要么恢复到旧语法. 使用构造函数: 类人{公众人物(){Name = "初始名称";}公共字符串名称 { 获取;放;}} 使用普通属性语法(带有初始值) private string name = "Initial Name";公共字符串名称{得到{返回名称;}放{名称=价值;}} 有没有更好的办法? 解决方案 在
..
我需要创建和管理许多简单的已发布属性.如果它们看起来像这样,我称它们为自动属性: 私有F标题:字符串;发表属性标题:字符串读取 FTitle 写入 FTitle; 通常我会用下一个方法创建它们: 添加属性名称和类型: 属性标题:字符串 选择属性名称Title并将其复制到剪贴板. 添加行 read F Ctrl+V write F Ctrl+V ; 按 Ctrl+S
..
我习惯于这样写类: 公共类 foo {私人字符串 mBar = "bar";公共字符串栏{得到{返回mBar;}设置 { mBar = 值;}}//... 其他方法,没有构造函数...} 将 Bar 转换为 auto-property 似乎方便简洁,但是如何在不添加构造函数并将初始化放入其中的情况下保留初始化? 公共类 foo2theRevengeOfFoo {//私有字符串 mBar =
..
我有以下自动属性 [DefaultValue(true)]公共布尔 RetrieveAllInfo { 获取;放;} 当我尝试在代码中使用它时,我发现默认 false 是 false 我假设这是 bool 变量的默认值,有人有提示有什么问题!? 解决方案 DefaultValue 属性仅用于告诉 Visual Studio 设计人员(例如在设计表单时)属性的默认值是什么.它不会在代码中
..
我喜欢在 C# 中自动实现的属性,但最近有一只大象站在我的小隔间里,我不知道该怎么处理它. 如果我使用自动实现的属性(以下简称“aip"),那么我就不再有可以在内部使用的私有支持字段.这很好,因为 aip 没有副作用.但是如果稍后我需要在 get 或 set 中添加一些额外的处理怎么办? 现在我需要创建一个支持字段,以便我可以扩展我的 getter 和 setter.这对于使用该类的外
..
我有以下自动属性 [默认值(真)]public bool RetrieveAllInfo { 获取;放;} 当我尝试在代码中使用它时,我发现默认的 false 是 false 我认为这是 bool 变量的默认值,有没有人有知道出了什么问题!? 解决方案 DefaultValue 属性仅用于告诉 Visual Studio 设计人员(例如在设计表单时)属性的默认值是什么.它不会在代码中设
..
我已经看到提出并回答了各种问题,我们可以使用反射调用私有 setter,例如: 是否可以获取属性的通过反射的私有二传手? 但是,我有一些代码具有我需要设置的属性,但由于没有设置器而无法设置,我无法添加设置器,因为这不是我的代码.在这种情况下,有没有办法使用反射以某种方式设置值? 解决方案 我不建议在您的应用程序上执行此操作,但出于测试目的,它可能有用... 假设你有:
..
我想知道C#是否自动实现了属性,比如public static T Prop { get;放;},线程安全与否.谢谢! 解决方案 看来不是.这是使用 Reflector 的反编译: 私有静态字符串测试{[编译器生成]得到{返回 k__BackingField;}[编译器生成]放{k__BackingField = value;}}
..
我想知道是否有任何方法可以将自定义行为添加到自动属性 get/set 方法中. 我能想到的一个明显的例子是希望每个设置的属性方法调用任何 PropertyChanged 事件处理程序作为 System.ComponentModel.INotifyPropertyChanged 实现的一部分.这将允许一个类具有许多可以观察的属性,其中每个属性都使用自动属性语法定义. 基本上,我想知道
..
我正在使用 xCode6 Beta 3,并且遇到了一个问题,以前编译良好的代码(xCode 5.1.1 或 xCode6 beta 2)突然开始给我“使用未声明的标识符" 访问自动合成的实例变量时出错: - (void)setFinished:(BOOL)finished {[self willChangeValueForKey:@"isFinished"];_finished = 完成;[se
..
我有下一个代码: struct T{公共 T(int u){这个.U = 10;//错误在这里}公共 int U { 得到;私人订制;}} C# 编译器在声明的行中给我一对错误:1) 在将控制权返回给调用者之前,必须完全分配自动实现的属性“TestConsoleApp.Program.T.U"的支持字段.考虑从构造函数初始值设定项调用默认构造函数.2) 'this' 对象在其所有字段都分配给之
..
所以就我而言,我正在使用反射来发现类的结构.我需要能够确定某个属性是否是 PropertyInfo 对象自动实现的属性.我假设反射 API 不会公开此类功能,因为自动属性依赖于 C#,但是否有任何解决方法来获取此信息? 解决方案 您可以检查 get 或 set 方法是否标有 CompilerGenerated 属性.然后,您可以将其与查找标记有 CompilerGenerated 属性的私
..
在回答这篇博文时,我在一些小结构上胡思乱想,意外地发现了以下内容: 以下结构,使用 int 字段是完全合法的: struct MyStruct{公共 MyStruct(整数大小){this.Size = 大小;//
..
我想知道以下 C# 代码: struct 结构{公共结构(int a,int b){属性A = a;属性B = b;}公共 int PropertyA { 得到;放;}公共 int PropertyB { 得到;放;}} 编译时不会出现错误“在分配所有字段之前无法使用‘this’对象".对于类似的类,它编译没有任何问题. 可以通过重构为以下内容来使其工作: struct 结构{私人 i
..
我需要将一些以 JSON 表示的 JavaScript 对象反序列化为适当的 C# 类.鉴于自动属性的良好特性,我更喜欢将它们放在这些类中,而不是只包含字段.不幸的是,.NET 序列化引擎(至少在默认情况下)完全忽略了反序列化的自动属性,只关心支持字段,这在 JavaScript 对象中显然不存在. 鉴于有没有命名支持字段的标准方法,老实说我没有'甚至不想打扰“让我们创建一个看起来像有 C#
..
有人可以对 C# 中的自动属性、它们的用途以及一些示例进行非常简单的解释吗?请尽量保持通俗的说法! 解决方案 当属性访问器中不需要额外的逻辑时,使用自动属性. 声明看起来像这样: public int SomeProperty { get;放;} 它们只是语法糖,因此您无需编写以下更冗长的代码: private int _someField;public int SomeProp
..
注意:这是在我开始使用 C# 时发布的.凭借 2014 年的知识,我真的可以说自动属性是 C# 语言中发生过的最好的事情之一. 我习惯于在 C# 中使用私有和公共字段创建我的属性: 私有字符串标题;公共字符串标题{得到{返回标题;}设置 { 标题 = 值;}} 现在,使用 .NET 3.0,我们获得了自动属性: public string Title { get;放;} 我知道这更像
..
如何给 C# 自动属性一个初始值? 我要么使用构造函数,要么恢复到旧语法. 使用构造函数: class Person{公众人物(){Name = "初始名称";}公共字符串名称 { 获取;放;}} 使用普通属性语法(带有初始值) private string name = "Initial Name";公共字符串名称{得到{返回名称;}放{名称 = 值;}} 有更好的方法吗?
..