簡體   English   中英

使用CodeTypeDeclaration創建一個類並向其中添加成員

[英]Creating a class with CodeTypeDeclaration and adding members to it

我在這樣的CodeTypeDeclaration的幫助下聲明了一個類:

CodeTypeDeclaration targetClass = new CodeTypeDeclaration(sType);

我可以添加一個構造函數:

 CodeConstructor constructor = new CodeConstructor();
 constructor.Attributes = MemberAttributes.Public;

或成員字段:

 CodeMemberField myField = new CodeMemberField();
 myField.Name = fieldName;
 myField.Type = new CodeTypeReference(fieldType);

 targetClass.Members.Add(myField);

但是我試圖添加任何類型的行,例如常量聲明:

const addressFilteresErrorCounters: UInt32 = 0x0000AE77;

我可以不使用CodeMemberField來做到這一點嗎? 也許我可以以某種方式將CodeSnippetStatement添加到類中,所以簡單地說,通過使用強制在類中添加一些行,而不用CodeMemberField過濾聲明行?

也許像這樣:

    targetClass.Members.Add(new CodeSnippetStatement("var n = 2"));

謝謝。

您不能將CodeSnippetStatement直接添加到類。 但是,您可以將它們添加到CodeMemberMethod ,例如:

CodeMemberMethod method = new CodeMemberMethod();
method.Name = "DoSomething";
method.Attributes = MemberAttributes.Public | MemberAttributes.Final;
method.Statements.Add(new CodeSnippetStatement("var n = 2;"));

盡管您無需CodeSnippetStatement來添加常量。 您可以使用:

CodeTypeDeclaration exampleClass = new CodeTypeDeclaration("GeneratedClass");
CodeMemberField constant = new CodeMemberField(new CodeTypeReference(typeof(System.UInt32)), "addressFilteresErrorCounters");
constant.Attributes = MemberAttributes.Const;
constant.InitExpression = new CodePrimitiveExpression(0x0000AE77);
exampleClass.Members.Add(constant);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM