39

采用以下类和方法:

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

所以得到“创造”是显而易见的:nameof(Foo.Create)

除了使用反射在运行时读取参数之外,还有什么方法可以获得“bar”?

4

1 回答 1

33

不,没有办法使用 . 从方法外部获取参数名称nameofnameof如果您想要调用方的名称(对于被调用者来说,它确实有效),则不适用于方法参数。您提到的其他方法,例如反射,确实有效。

var parameterNames = typeof(Program)
                     .GetMethod(nameof(Program.Main)).GetParameters()
                     .Select(p => p.Name);
于 2016-05-20T15:04:32.597 回答