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

本文关键字:setter 方法 获取 nameof 使用 | 更新日期: 2023-09-27 18:22:08

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

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

我想GetType().GetMethod("set_" + nameof(Foo))可以工作,但还有更直接的事情吗?

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

不能使用 nameof 直接获取 setter 方法名称。

您可以将其与反射结合使用以获取属性,并使用PropertyInfo.SetMethod获取资源库:

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

像 -

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

其中Testproperty S3类型为 stringtype