是否可以在不创建实例的情况下获取值(value)?我有这门课:publicclassMyClass{publicstringName{get{return"David";}}publicMyClass(){}}现在我需要在不创建MyClass实例的情况下获取值“David”。 最佳答案 真正的答案:没有。这是一个实例属性,因此您只能在实例上调用它。您应该创建一个实例,或者将属性设为静态,如其他答案中所示。有关静态成员和实例成员之间差异的更多信息,请参阅MSDN。开玩笑但仍然是正确答案:Isitpossibletogetvaluewi
是否可以在不创建实例的情况下获取值(value)?我有这门课:publicclassMyClass{publicstringName{get{return"David";}}publicMyClass(){}}现在我需要在不创建MyClass实例的情况下获取值“David”。 最佳答案 真正的答案:没有。这是一个实例属性,因此您只能在实例上调用它。您应该创建一个实例,或者将属性设为静态,如其他答案中所示。有关静态成员和实例成员之间差异的更多信息,请参阅MSDN。开玩笑但仍然是正确答案:Isitpossibletogetvaluewi
我已经创建了将属性lambda转换为委托(delegate)的方法:publicstaticDelegateMakeGetter(Expression>propertyLambda){varresult=Expression.Lambda(propertyLambda.Body).Compile();returnresult;}publicstaticDelegateMakeSetter(Expression>propertyLambda){varresult=Expression.Lambda(propertyLambda.Body).Compile();returnresult;}
我已经创建了将属性lambda转换为委托(delegate)的方法:publicstaticDelegateMakeGetter(Expression>propertyLambda){varresult=Expression.Lambda(propertyLambda.Body).Compile();returnresult;}publicstaticDelegateMakeSetter(Expression>propertyLambda){varresult=Expression.Lambda(propertyLambda.Body).Compile();returnresult;}
这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:PropertiesvsMethods您可以在方法中键入一些代码,也可以在属性中键入。例如,我有一个属性名称。当类名更改时,我想从数据库中获取一些数据并更改对象的状态。我可以添加此代码来设置我的部分属性(property)。其他解决方案是将设置部分更改为私有(private)并添加名为SetName的方法,并在此方法中添加我的代码。那么有什么区别呢?什么时候将一些代码放入getter/setter是不好的,什么时候创建自己的方法来更改我的属性和类的其他部分?
这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:PropertiesvsMethods您可以在方法中键入一些代码,也可以在属性中键入。例如,我有一个属性名称。当类名更改时,我想从数据库中获取一些数据并更改对象的状态。我可以添加此代码来设置我的部分属性(property)。其他解决方案是将设置部分更改为私有(private)并添加名为SetName的方法,并在此方法中添加我的代码。那么有什么区别呢?什么时候将一些代码放入getter/setter是不好的,什么时候创建自己的方法来更改我的属性和类的其他部分?
我是C#的新手,我认为属性是一件很棒的事情。太棒了,事实上,我看不出使用字段有任何真正的优势。即使对于私有(private)字段,属性提供的灵active和模块化似乎充其量可以让您省去严重的麻烦,最坏的情况是根本没有任何效果。我能看到的字段的唯一优点是您可以内联初始化它们。但大多数时候,无论如何,你都想在构造函数中初始化它们。如果您不使用内联初始化,是否有任何理由不一直使用属性?编辑:有些人提出需要用字段备份属性(显式或自动)。让我澄清一下我的问题:是否有任何理由使用字段除了备份属性?即,是否有任何时候SomeTypesomeField;优于SomeTypeSomeProperty{g
我是C#的新手,我认为属性是一件很棒的事情。太棒了,事实上,我看不出使用字段有任何真正的优势。即使对于私有(private)字段,属性提供的灵active和模块化似乎充其量可以让您省去严重的麻烦,最坏的情况是根本没有任何效果。我能看到的字段的唯一优点是您可以内联初始化它们。但大多数时候,无论如何,你都想在构造函数中初始化它们。如果您不使用内联初始化,是否有任何理由不一直使用属性?编辑:有些人提出需要用字段备份属性(显式或自动)。让我澄清一下我的问题:是否有任何理由使用字段除了备份属性?即,是否有任何时候SomeTypesomeField;优于SomeTypeSomeProperty{g
当我在其中时,我想通过反射获取属性名称。可能吗?我有这样的代码:publicCarTypeCar{get{return(Wheel)this["Wheel"];}set{this["Wheel"]=value;}}因为我需要更多这样的属性,所以我想做这样的事情:publicCarTypeCar{get{return(Wheel)this[GetThisPropertyName()];}set{this[GetThisPropertyName()]=value;}} 最佳答案 由于属性实际上只是方法,您可以执行此操作并清理返回的get
当我在其中时,我想通过反射获取属性名称。可能吗?我有这样的代码:publicCarTypeCar{get{return(Wheel)this["Wheel"];}set{this["Wheel"]=value;}}因为我需要更多这样的属性,所以我想做这样的事情:publicCarTypeCar{get{return(Wheel)this[GetThisPropertyName()];}set{this[GetThisPropertyName()]=value;}} 最佳答案 由于属性实际上只是方法,您可以执行此操作并清理返回的get