使用nameof在c#中获取setter方法名称

时间:2015-11-16 13:07:41

标签: c# nameof

是否可以使用新的nameof运算符获取setter方法名称?

public object Foo { get; set; }

public void Test()
{        
    var myMethod = GetType().GetMethod("set_Foo");       
}

我猜GetType().GetMethod("set_" + nameof(Foo))可以运作,但是有更直接的东西吗?

2 个答案:

答案 0 :(得分:5)

您无法使用nameof直接获取setter方法名称。

您可以将它与反射相结合以获取属性并使用PropertyInfo.SetMethod来获取setter:

MethodInfo setterMethod = GetType().GetProperty(nameof(Foo)).SetMethod;
string setterName = setterMethod.Name;

答案 1 :(得分:-1)

像 -

var type = typeof(Test).GetProperties().FirstOrDefault().GetAccessors(false);

其中Testtypeproperty S3类型为string