繁体   English   中英

C#问题中的对象创建

[英]Object creation in C# question

我正在讨论一些c#教程,其中说明了以下内容:

“在找到属性类之后,编译器将检查该类是否允许该属性。然后它将检查与属性use中指定的参数匹配的构造函数。如果找到一个,则创建该对象的实例通过调用具有指定值的构造函数“

该段的名称是“编译过程”,它指的是编译器处理属性的方式。 我很抱歉无知,但不应该在运行时创建实例吗?

谢谢。

属性定义类的元数据 - 类的每个实例(即对象)将共享相同的属性值。 此元数据与类型定义一起存储,类型定义在编译时从源文件计算一次。

由于有些属性也会影响编译器 ,如果编译器在编译实例化它们,我也不会感到惊讶。 所以呢?

有一个“编译”过程生成一个使用.NET框架解释的中间代码。

这就是他们谈论编译过程的原因。

编译器仅创建描述属性构造和对其属性的赋值的元数据。 属性本身仅在您使用反射列出属性时进行实例化。 我认为每次调用反射都会创建该属性的新实例。

而且我认为有一种方法(与仅反射上下文相关)直接从元检查属性而根本不实例化它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM