小编Dav*_*vid的帖子

C#获取类的非静态属性的名称

我有一个与另一个问题非常相似的问题:将属性名称作为字符串.

他的解决方案结束了

// Static Property 
string name = GetPropertyName(() => SomeClass.SomeProperty); 

// Instance Property 
string name = GetPropertyName(() => someObject.SomeProperty); 
Run Code Online (Sandbox Code Playgroud)

我想要的是具有类似于静态属性的语法,但是对于实例属性.

原因是我现在有代码使用反射来获取集合中所有对象的属性值,但我必须将其作为硬编码字符串传递.

示例代码:

double Sum = AmountCollection.Sum("thatfield");  
Run Code Online (Sandbox Code Playgroud)

嗯,这很好用,但如果"thatfield"被重命名,代码将不再有效.编译器无法检查它,因为它只是一个字符串.此外,Get References也不会出于同样的原因.

那么,有没有办法实现从实例属性轻松获取属性名称的目标(即;只是一个函数调用)?

谢谢.

c# properties instance

3
推荐指数
1
解决办法
1333
查看次数

标签 统计

c# ×1

instance ×1

properties ×1