Questions tagged «properties»

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


14
为什么要避免在C#中使用属性?
杰弗里·里希特(Jeffrey Richter)在他的出色著作《 CLR Via C#》中说,他不喜欢属性,建议不要使用它们。他给出了一些理由,但我不太了解。谁能向我解释为什么或不应该使用属性?在具有自动属性的C#3.0中,这会更改吗? 作为参考,我添加了Jeffrey Richter的意见: •属性可以是只读或只写的;现场访问始终是可读写的。如果定义属性,则最好同时提供get和set访问器方法。 •属性方法可能会引发异常;现场访问永远不会引发异常。 •属性不能作为out或ref参数传递给方法;田野可以。例如,以下代码将无法编译: using System; public sealed class SomeType { private static String Name { get { return null; } set {} } static void MethodWithOutParam(out String n) { n = null; } public static void Main() { // For the line of …
102 c#  properties 


3
可访问性不一致:属性类型难以访问
请有人帮助解决以下错误: 可访问性不一致:与属性“ Test.Form1.thelivery”相比,属性类型“ Test.Delivery”的访问性较差 private Delivery thedelivery; public Delivery thedelivery { get { return thedelivery; } set { thedelivery = value; } } 由于不一致的错误消息,我无法运行该程序。 这是我的授课课: namespace Test { class Delivery { private string name; private string address; private DateTime arrivalTime; public string Name { get { return name; } set …
100 c#  properties 

2
在遍历对象属性时删除对象属性是否安全?
遍历对象的属性时,在for-in循环中删除它们是否安全? 例如: for (var key in obj) { if (!obj.hasOwnProperty(key)) continue; if (shouldDelete(obj[key])) { delete obj[key]; } } 在许多其他语言中,遍历数组或字典并在其中删除是不安全的。在JS中可以吗? (我正在使用Mozilla的Spidermonkey运行时。)


9
是否可以获得对象的不可枚举的继承属性名称?
在JavaScript中,根据要获取的内容,我们有几种获取对象属性的方法。 1)Object.keys(),它返回对象的所有自己的,可枚举的属性,即ECMA5方法。 2)for...in循环,返回对象的所有可枚举属性,无论它们是自己的属性还是从原型链继承。 3)Object.getOwnPropertyNames(obj)返回对象本身的所有属性,无论是否可枚举。 我们还拥有诸如hasOwnProperty(prop)让我们检查属性是否继承或实际上属于该对象之类的方法,以及propertyIsEnumerable(prop)顾名思义,可以让我们检查属性是否可枚举的方法。 使用所有这些选项,就无法获得对象的不可枚举,非自有属性,这就是我想要做的。有什么办法吗?换句话说,我能以某种方式获得继承的不可枚举属性的列表吗? 谢谢。

6
如何动态设置Javascript对象的值?
用语言很难解释这种情况,让我举个例子: var myObj = { 'name': 'Umut', 'age' : 34 }; var prop = 'name'; var value = 'Onur'; myObj[name] = value; // This does not work eval('myObj.' + name) = value; //Bad coding ;) 如何在JavaScript对象中设置具有变量值的变量属性?

10
Swift中计算的只读属性与函数
在Swift WWDC简介会话中,展示了一个只读属性description: class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) 选择上述方法而不是使用方法有什么含义: class Vehicle { var numberOfWheels = 0 func description() -> String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description()) 在我看来,您选择只读计算属性的最明显原因是: 语义 -在此示例中description,将其作为类的属性而不是其执行的操作是有意义的。 简短明了 …


9
WCF对没有“设置”的属性造成窒息。任何解决方法?
由于服务方法,我要传递一些类,并且该类具有仅获取属性: [DataContract] public class ErrorBase { [DataMember] public virtual string Message { get { return ""; } } } 服务端出现异常: System.Runtime.Serialization.InvalidDataContractException:类型'MyNamespace.ErrorBase'中没有为属性'Message'设置的方法。 我必须将此属性作为唯一的获取器,我不能允许用户为其分配值。我可以使用任何解决方法吗?还是我缺少一些其他属性?

10
Python只读属性
我不知道何时属性应该是私有的,是否应该使用属性。 我最近读到,setter和getters不是pythonic,我应该使用属性装饰器。没关系。 但是,如果我有属性,该属性不能从类外部设置,而是可以读取的(只读属性)。这个属性应该是私有的self._x吗?我所说的私有是指下划线吗?如果是,那么不使用getter怎么读?我现在知道的唯一方法是写 @property def x(self): return self._x 这样我就可以读取属性,obj.x但是我无法设置它,obj.x = 1所以很好。 但是,我真的应该在乎设置不应该设置的对象吗?也许我应该离开它。但是话又说回来,我不能使用下划线,因为阅读obj._x对于用户来说很奇怪,所以我应该使用下划线obj.x,然后用户又一次不知道他一定不能设置该属性。 您的看法和做法是什么?

2
Moq,SetupGet,模拟属性
我正在尝试模拟一个名为的类,该类UserInputEntity包含一个名为的属性ColumnNames(它确实包含其他属性,我只是将其简化为问题) namespace CsvImporter.Entity { public interface IUserInputEntity { List<String> ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List<String> columnNameInputs) { ColumnNames = columnNameInputs; } public List<String> ColumnNames { get; set; } } } 我有一个主持人班: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... } public class …
94 c#  c#-4.0  properties  moq 

7
Objective-C中的只读属性?
我在接口中声明了一个readonly属性,例如: @property (readonly, nonatomic, copy) NSString* eventDomain; 也许我误解了属性,但是我认为当您将其声明为时readonly,您可以在实现(.m)文件中使用生成的setter ,但是外部实体无法更改该值。这样的问题说那应该发生。这就是我的行为。但是,当尝试使用标准的setter或点语法eventDomain在我的init方法内部进行设置时,它给我一个unrecognized selector sent to instance.错误。我当然在@synthesize找房子。尝试像这样使用它: // inside one of my init methods [self setEventDomain:@"someString"]; // unrecognized selector sent to instance error 那么我会误会readonly关于财产的声明吗?还是发生了其他事情?


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.