不是用CodeDom生成的抽象类
本文关键字:抽象类 CodeDom | 更新日期: 2023-09-27 17:50:24
我有这样的类定义:
CodeTypeDeclaration helloWorldClass = new CodeTypeDeclaration("HelloWorld") {
Attributes = MemberAttributes.Abstract | MemberAttributes.Public
};
为什么这个声明生成一个非抽象类?
public class HelloWorld
{
}
您需要使用CodeTypeDeclaration.TypeAttributes
而不是MemberAttributes
:
CodeTypeDeclaration helloWorldClass = new CodeTypeDeclaration("HelloWorld")
{
TypeAttributes = TypeAttributes.Abstract | TypeAttributes.Public
};
为什么要添加Attributes属性呢定义类型?
在文档中明确指定:
一些标志,如抽象,与标志的含义重叠在继承的CodeTypeDeclaration的Attributes属性中从CodeTypeMember。属性的副作用继承CodeTypeMember的CodeTypeDeclaration类,以便类可以嵌套。TypeAttributes属性中的标志应该
为了使用这样的继承层次结构,他们做了一个轻微的混淆复制。这就是为什么好的文档很重要。