Questions tagged «properties»

在某些面向对象的编程语言中,属性是一种特殊的类成员,介于字段(或数据成员)和方法之间。属性的读取和写入就像字段一样,但是(通常)将属性读取和写入转换为get和set方法调用。

13
以字符串形式获取属性名称
(请参阅下面我使用接受的答案创建的解决方案) 我正在尝试改善某些涉及反射的代码的可维护性。该应用程序具有.NET Remoting接口,该接口(除其他外)公开了一种称为Execute的方法,用于访问应用程序未包含在其发布的远程接口中的部分。 这是应用程序指定通过Execute可以访问的属性(在此示例中为静态属性)的方式: RemoteMgr.ExposeProperty("SomeSecret", typeof(SomeClass), "SomeProperty"); 因此,远程用户可以致电: string response = remoteObject.Execute("SomeSecret"); 然后该应用将使用反射来查找SomeClass.SomeProperty并将其值作为字符串返回。 不幸的是,如果有人重命名SomeProperty而忘记更改ExposeProperty()的第3个参数,则会破坏此机制。 我需要相当于: SomeClass.SomeProperty.GetTheNameOfThisPropertyAsAString() 用作ExposeProperty中的第三个参数,因此重构工具将负责重命名。 有没有办法做到这一点?提前致谢。 好的,这就是我最终创建的内容(基于我选择的答案和他引用的问题): // <summary> // Get the name of a static or instance property from a property access lambda. // </summary> // <typeparam name="T">Type of the property</typeparam> // <param name="propertyLambda">lambda expression of the …

4
JavaScript中是否有一个“ not in”运算符来检查对象属性?
JavaScript中是否存在某种“不在”运算符来检查对象中是否不存在属性?我在Google或Stack Overflow上找不到任何相关信息。这是我正在使用的此类功能的一小段代码: var tutorTimes = {}; $(checked).each(function(idx){ id = $(this).attr('class'); if(id in tutorTimes){} else{ //Rest of my logic will go here } }); 如您所见,我会将所有内容放到else声明中。对于我来说,仅使用该部分来建立if–else语句似乎是错误的else。

11
财产获取者和安置者
通过这个简单的类,我得到了编译器警告 尝试x在自己的设置器/ 获取器中修改/访问 当我这样使用它时: var p: point = Point() p.x = 12 我得到一个EXC_BAD_ACCESS。没有明确的支持,我该怎么办? class Point { var x: Int { set { x = newValue * 2 //Error } get { return x / 2 //Error } } // ... }

13
获取对象的属性名称
我想知道JavaScript中是否有任何方法可以像这样遍历一个对象。 for(var i in myObject) { // ... } 但是这样获取每个属性的名称。 for(var i in myObject) { separateObj[myObject[i].name] = myObject[i]; } 我似乎在Google上找不到类似的东西。他们说与他们一起传递变量名,但这不是我要实现的目标的选择。 谢谢你尽你所能的帮助。

5
如何使用Linq从对象列表中获取属性的唯一列表?
我正在尝试使用Linq返回给定的id列表,其中id是属性的对象列表。我希望能够做到这一点,而无需遍历每个对象并提取出我发现的唯一ID。 我有一个MyClass类型的对象列表,此类的属性之一是ID。 public class MyClass { public int ID { get; set; } } 我想做的是编写一个Linq查询以向我返回这些ID的列表 给定一个IList<MyClass>使得返回IEnumerable<int>ID的ID ,我该怎么做? 我确信使用Linq可以在一两行中完成此操作,而不是循环遍历MyClass列表中的每个项目并将唯一值添加到列表中。 在创建一个优雅的解决方案的任何帮助将不胜感激!
171 linq  class  list  c#-3.0  properties 

7
如何遍历一个类的所有属性?
我有课 Public Class Foo Private _Name As String Public Property Name() As String Get Return _Name End Get Set(ByVal value As String) _Name = value End Set End Property Private _Age As String Public Property Age() As String Get Return _Age End Get Set(ByVal value As String) _Age = value …

9
为什么2 == [2]在JavaScript中?
我最近2 == [2]在JavaScript中发现了这一点。事实证明,这个怪癖有一些有趣的后果: var a = [0, 1, 2, 3]; a[[2]] === a[2]; // this is true 同样,以下工作: var a = { "abc" : 1 }; a[["abc"]] === a["abc"]; // this is also true 甚至还是陌生人,这也起作用: [[[[[[[2]]]]]]] == 2; // this is true too! WTF? 这些行为在所有浏览器中似乎都是一致的。 知道为什么这是语言功能吗? 这是此“功能”的更疯狂的后果: [0] == false …

11
属性和属性有什么区别?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 6年前关闭。 改善这个问题 这些似乎是同一回事。但是在什么情况下哪个术语更合适?



10
覆盖子类中的字段或属性
我有一个抽象基类,我想声明一个字段或一个属性,该属性将在从该父类继承的每个类中具有不同的值。 我想在基类中定义它,以便可以在基类方法中引用它-例如,重写ToString表示“此对象的属性/字段类型”。我可以看到三种方式来执行此操作,但是我想知道-最佳或公认的方式是什么?新手问题,对不起。 选项1: 使用抽象属性,并在继承的类上重写它。这得益于强制执行(您必须覆盖它)并且它很干净。但是,返回一个硬代码值而不是封装一个字段感觉有点错误,这是几行代码而不是仅仅几行。我还必须声明一个用于“ set”的主体,但这并不重要(而且可能有一种避免我不知道的主体的方法)。 abstract class Father { abstract public int MyInt { get; set;} } class Son : Father { public override int MyInt { get { return 1; } set { } } } 选项2 我可以声明一个公共字段(或一个受保护的字段),并在继承的类中显式覆盖它。下面的示例将警告我使用“ new”,我可能可以这样做,但是感觉不对,它破坏了多态性,这就是重点。似乎不是个好主意... abstract class Mother { public int MyInt = 0; } …
145 c#  properties  field 


10
关于如何在python中使用属性功能的真实示例?
我对如何@property在Python中使用感兴趣。我阅读了python文档,并认为其中的示例只是一个玩具代码: class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x 我不知道通过包装_x用属性装饰器填充的内容可以获得什么好处。为什么不只是实现为: class C(object): def __init__(self): self.x = None 我认为,属性功能在某些情况下可能很有用。但当?有人可以给我一些真实的例子吗? 谢谢。

16
为什么不可能覆盖仅getter的属性并添加setter?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 为什么不允许以下C#代码: public abstract class BaseClass { public abstract int Bar { get;} } public class ConcreteClass : BaseClass { public override int Bar { get { return 0; } set {} } } CS0546'ConcreteClass.Bar.set':无法覆盖,因为'BaseClass.Bar'没有可覆盖的集合访问器

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

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.