【发布时间】:2019-07-13 20:46:42
【问题描述】:
我想“静态”访问(即在编译时)给定类型的实例成员(当然是检索它们的静态属性,而不是实际值或类似的东西)。
考虑:
interface IFoo
{
int X { get; }
}
我想直接访问X 以检索编译时已知的内容,例如:
Console.WriteLine(typeof(IFoo::X).Name);
反射是运行时,我问的是编译时。
【问题讨论】:
-
您在寻找
nameof(Foo.X)?或者换句话说,您想查询成员元数据,例如其类型或名称?您可以为此使用反射。如何做到这一点远远超出了这里的一个问题。 -
如果你不是只是寻找名字,听起来你想要神话般的
infoof运营商:blogs.msdn.microsoft.com/ericlippert/2009/05/21/… -
@HimBromBeere,谢谢,我知道反射,但为此我需要实例,所以这不是编译时间也不是静态访问。
-
您不需要实例来检索其元数据,因为该元数据静态绑定到 type,而不是单个 instance。不管你是对的,它是运行时信息。
-
"反射是运行时,我问的是编译时。" 那么答案是"没办法"
标签: c# compile-time