【发布时间】:2010-09-02 05:31:04
【问题描述】:
我发现 C# 中的属性似乎是延迟实例化的。
[A(123)]
class A : Attribute
{
public A(int b)
{
GetType().GetCustomAttributes(true);
}
}
在本例中,创建一个新的A 实例会导致StackOverflowException,但如果我删除对GetCustomAttributes() 的调用,则执行会正常进行。
这是为什么?对我来说,当他们装饰的类是正确初始化属性时更有意义。
【问题讨论】:
-
类被初始化是什么意思?你认为这会在什么时候发生?
标签: c# .net attributes lazy-initialization