定义

命名空间:
System.CodeDom
程序集:
System.dll
初始化 CodeCommentStatement 类的新实例。

重载

CodeCommentStatement() 初始化 CodeCommentStatement 类的新实例。
CodeCommentStatement(CodeComment)) 使用指定的注释初始化 CodeCommentStatement 类的新实例。
CodeCommentStatement(String)) 使用指定文本作为内容来初始化 CodeCommentStatement 类的新实例。
CodeCommentStatement(String, Boolean)) 使用指定的文本和文档注释标志初始化 CodeCommentStatement 类的新实例。

CodeCommentStatement()

初始化 CodeCommentStatement 类的新实例。
C#复制
public CodeCommentStatement ();

适用于

.NET Framework 4.8 和其他版本

CodeCommentStatement(CodeComment)

使用指定的注释初始化 CodeCommentStatement 类的新实例。

publicCodeCommentStatement (System.CodeDom.CodeComment comment);

参数

**comment** CodeComment
CodeComment,指示注释。

适用于

.NET Framework 4.8 和其他版本

CodeCommentStatement(String)

使用指定文本作为内容来初始化 CodeCommentStatement 类的新实例。

public CodeCommentStatement (string text);

参数

**text** String
注释的内容。

适用于

.NET Framework 4.8 和其他版本

CodeCommentStatement(String, Boolean)

使用指定的文本和文档注释标志初始化 CodeCommentStatement 类的新实例。
C#复制
public CodeCommentStatement (string text, bool docComment);

参数

**text** String
注释的内容。
**docComment** Boolean
当该注释是文档注释时为 **true**;否则为 **false**

示例

下面的代码示例演示如何使用 CodeCommentStatement(String, Boolean)) 构造函数创建要用作 XML 注释字段的注释语句。 此示例是后面的较大示例的一部分。

  1. // Declare a new code entry point method.
  2. CodeEntryPointMethod start = new CodeEntryPointMethod();
  3. start.Comments.Add(new CodeCommentStatement("<summary>", true));
  4. start.Comments.Add(new CodeCommentStatement(
  5. "Main method for HelloWorld application.", true));
  6. start.Comments.Add(new CodeCommentStatement(
  7. @"<para>Add a new paragraph to the description.</para>", true));
  8. start.Comments.Add(new CodeCommentStatement("</summary>", true));

下面的代码示例演示如何创建简单的“Hello World”控制台应用程序和生成已编译应用程序的 XML 文档文件。

  1. using System;
  2. using System.CodeDom;
  3. using System.CodeDom.Compiler;
  4. using System.IO;
  5. using System.Text.RegularExpressions;
  6. namespace BasicCodeDomApp
  7. {
  8. class Program
  9. {
  10. static string providerName = "cs";
  11. static string sourceFileName = "test.cs";
  12. static void Main(string[] args)
  13. {
  14. CodeDomProvider provider = CodeDomProvider.CreateProvider(providerName);
  15. LogMessage("Building CodeDOM graph...");
  16. CodeCompileUnit cu = new CodeCompileUnit();
  17. cu = BuildHelloWorldGraph();
  18. StreamWriter sourceFile = new StreamWriter(sourceFileName);
  19. provider.GenerateCodeFromCompileUnit(cu, sourceFile, null);
  20. sourceFile.Close();
  21. CompilerParameters opt = new CompilerParameters(new string[]{
  22. "System.dll" });
  23. opt.GenerateExecutable = true;
  24. opt.OutputAssembly = "HelloWorld.exe";
  25. opt.TreatWarningsAsErrors = true;
  26. opt.IncludeDebugInformation = true;
  27. opt.GenerateInMemory = true;
  28. opt.CompilerOptions = "/doc:HelloWorldDoc.xml";
  29. CompilerResults results;
  30. LogMessage("Compiling with " + providerName);
  31. results = provider.CompileAssemblyFromFile(opt, sourceFileName);
  32. OutputResults(results);
  33. if (results.NativeCompilerReturnValue != 0)
  34. {
  35. LogMessage("");
  36. LogMessage("Compilation failed.");
  37. }
  38. else
  39. {
  40. LogMessage("");
  41. LogMessage("Demo completed successfully.");
  42. }
  43. File.Delete(sourceFileName);
  44. }
  45. // Build a Hello World program graph using System.CodeDom types.
  46. public static CodeCompileUnit BuildHelloWorldGraph()
  47. {
  48. // Create a new CodeCompileUnit to contain
  49. // the program graph.
  50. CodeCompileUnit compileUnit = new CodeCompileUnit();
  51. // Declare a new namespace called Samples.
  52. CodeNamespace samples = new CodeNamespace("Samples");
  53. // Add the new namespace to the compile unit.
  54. compileUnit.Namespaces.Add(samples);
  55. // Add the new namespace import for the System namespace.
  56. samples.Imports.Add(new CodeNamespaceImport("System"));
  57. // Declare a new type called Class1.
  58. CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");
  59. class1.Comments.Add(new CodeCommentStatement("<summary>", true));
  60. class1.Comments.Add(new CodeCommentStatement(
  61. "Create a Hello World application.", true));
  62. class1.Comments.Add(new CodeCommentStatement("</summary>", true));
  63. class1.Comments.Add(new CodeCommentStatement(
  64. @"<seealso cref=" + '"' + "Class1.Main" + '"' + "/>", true));
  65. // Add the new type to the namespace type collection.
  66. samples.Types.Add(class1);
  67. // Declare a new code entry point method.
  68. CodeEntryPointMethod start = new CodeEntryPointMethod();
  69. start.Comments.Add(new CodeCommentStatement("<summary>", true));
  70. start.Comments.Add(new CodeCommentStatement(
  71. "Main method for HelloWorld application.", true));
  72. start.Comments.Add(new CodeCommentStatement(
  73. @"<para>Add a new paragraph to the description.</para>", true));
  74. start.Comments.Add(new CodeCommentStatement("</summary>", true));
  75. // Create a type reference for the System.Console class.
  76. CodeTypeReferenceExpression csSystemConsoleType =
  77. new CodeTypeReferenceExpression("System.Console");
  78. // Build a Console.WriteLine statement.
  79. CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression(
  80. csSystemConsoleType, "WriteLine",
  81. new CodePrimitiveExpression("Hello World!"));
  82. // Add the WriteLine call to the statement collection.
  83. start.Statements.Add(cs1);
  84. // Build another Console.WriteLine statement.
  85. CodeMethodInvokeExpression cs2 = new CodeMethodInvokeExpression(
  86. csSystemConsoleType, "WriteLine", new CodePrimitiveExpression(
  87. "Press the ENTER key to continue."));
  88. // Add the WriteLine call to the statement collection.
  89. start.Statements.Add(cs2);
  90. // Build a call to System.Console.ReadLine.
  91. CodeMethodInvokeExpression csReadLine =
  92. new CodeMethodInvokeExpression(csSystemConsoleType, "ReadLine");
  93. // Add the ReadLine statement.
  94. start.Statements.Add(csReadLine);
  95. // Add the code entry point method to
  96. // the Members collection of the type.
  97. class1.Members.Add(start);
  98. return compileUnit;
  99. }
  100. static void LogMessage(string text)
  101. {
  102. Console.WriteLine(text);
  103. }
  104. static void OutputResults(CompilerResults results)
  105. {
  106. LogMessage("NativeCompilerReturnValue=" +
  107. results.NativeCompilerReturnValue.ToString());
  108. foreach (string s in results.Output)
  109. {
  110. LogMessage(s);
  111. }
  112. }
  113. }
  114. }

注解

如果参数 docCommenttrue,则 CodeCommentStatement 为文档注释,注释使用三个分隔符字符进行结构化。 例如,在 C# 中,注释为///,在Visual Basic中'''。 文档注释用于标识 XML 注释字段,例如元素标识<summary> 的类型或成员摘要。