nameof 运算符有什么方法可以访问方法参数(在同一方法之外)?

Is there any way for the nameof operator to access method parameters (outside of the same method)?

采取以下class和方法:

public class Foo
    public Foo Create(string bar) {
        return new Foo(bar);
    }

所以得到 "Create" 是显而易见的:nameof(Foo.Create)

除了在运行时使用反射读取参数外,还有什么方法可以得到"bar"吗?

没有。无法使用 nameof 从方法外部获取参数名称。 nameof 如果您想要调用方的名称,则不适用于方法参数(对于被调用方,它显然有效)。您提到的其他方法,如反射,都有效。

var parameterNames = typeof(Program)
                     .GetMethod(nameof(Program.Main)).GetParameters()
                     .Select(p => p.Name);