CodeCommentStatement コンストラクタ (String, Boolean)
アセンブリ: System (system.dll 内)
構文
Dim text As String Dim docComment As Boolean Dim instance As New CodeCommentStatement(text, docComment)
docComment パラメータが true の場合、CodeCommentStatement はドキュメント コメントであり、コメントは 3 つの区切り記号文字を使用して構成されます。たとえば、C# ではコメントは "///" で、Visual Basic では "'''" です。ドキュメント コメントは、型やメンバの概要 (<summary> 要素で識別される) などの、XML コメント フィールドを識別するために使用されます。
CodeCommentStatement(String,Boolean) コンストラクタを使用して、XML コメント フィールドとして使用するコメント ステートメントを作成する方法を次のコード例に示します。この例は、後に示す例の一部です。
' Declare a new code entry point method. Dim start As New CodeEntryPointMethod() start.Comments.Add(New CodeCommentStatement("<summary>", True)) start.Comments.Add(New CodeCommentStatement("Main method for HelloWorld application.", True)) start.Comments.Add(New CodeCommentStatement("<para>Add a new paragraph to the description.</para>", True)) start.Comments.Add(New CodeCommentStatement("</summary>", True))
// Declare a new code entry point method. CodeEntryPointMethod start = new CodeEntryPointMethod(); start.Comments.Add(new CodeCommentStatement("<summary>", true)); start.Comments.Add(new CodeCommentStatement("Main method for HelloWorld application.", true)); start.Comments.Add(new CodeCommentStatement(@"<para>Add a new paragraph to the description.</para>", true)); start.Comments.Add(new CodeCommentStatement("</summary>", true));
簡単な "Hello World" コンソール アプリケーションを作成し、コンパイル済みのアプリケーションの XML ドキュメント ファイルを生成する方法を次のコード例に示します。
Imports System Imports System.CodeDom Imports System.CodeDom.Compiler Imports System.IO Imports System.Text.RegularExpressions Class Program Private Shared providerName As String = "vb" Private Shared sourceFileName As String = "test.vb" Shared Sub Main(ByVal args() As String) Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider(providerName) LogMessage("Building CodeDOM graph...") Dim cu As New CodeCompileUnit() cu = BuildHelloWorldGraph() Dim sw As New StringWriter() LogMessage("Generating code...") provider.GenerateCodeFromCompileUnit(cu, sw, Nothing) Dim output As String = sw.ToString() output = Regex.Replace(output, "Runtime Version:[^" + vbCr + vbLf + "]*", "Runtime Version omitted for demo") LogMessage("Dumping source...") LogMessage(output) LogMessage("Writing source to file...") Dim s As Stream = File.Open(sourceFileName, FileMode.Create) Dim t As New StreamWriter(s) t.Write(output) t.Close() s.Close() Dim opt As New CompilerParameters(New String() {"System.dll"}) opt.GenerateExecutable = True opt.OutputAssembly = "HelloWorld.exe" opt.TreatWarningsAsErrors = True opt.IncludeDebugInformation = True opt.GenerateInMemory = True opt.CompilerOptions = "/doc" Dim results As CompilerResults LogMessage(("Compiling with " + providerName)) results = provider.CompileAssemblyFromFile(opt, sourceFileName) OutputResults(results) If results.NativeCompilerReturnValue <> 0 Then LogMessage("") LogMessage("Compilation failed.") Else LogMessage("") LogMessage("Demo completed successfully.") End If File.Delete(sourceFileName) End Sub 'Main ' Build a Hello World program graph using ' System.CodeDom types. Public Shared Function BuildHelloWorldGraph() As CodeCompileUnit ' Create a new CodeCompileUnit to contain ' the program graph. Dim compileUnit As New CodeCompileUnit() ' Declare a new namespace called Samples. Dim samples As New CodeNamespace("Samples") ' Add the new namespace to the compile unit. compileUnit.Namespaces.Add(samples) ' Add the new namespace import for the System namespace. samples.Imports.Add(New CodeNamespaceImport("System")) ' Declare a new type called Class1. Dim class1 As New CodeTypeDeclaration("Class1") class1.Comments.Add(New CodeCommentStatement("<summary>", True)) class1.Comments.Add(New CodeCommentStatement("Create a Hello World application.", True)) class1.Comments.Add(New CodeCommentStatement("<seealso cref=" + ControlChars.Quote + "Class1.Main" + ControlChars.Quote + "/>", True)) class1.Comments.Add(New CodeCommentStatement("</summary>", True)) ' Add the new type to the namespace type collection. samples.Types.Add(class1) ' Declare a new code entry point method. Dim start As New CodeEntryPointMethod() start.Comments.Add(New CodeCommentStatement("<summary>", True)) start.Comments.Add(New CodeCommentStatement("Main method for HelloWorld application.", True)) start.Comments.Add(New CodeCommentStatement("<para>Add a new paragraph to the description.</para>", True)) start.Comments.Add(New CodeCommentStatement("</summary>", True)) ' Create a type reference for the System.Console class. Dim csSystemConsoleType As New CodeTypeReferenceExpression("System.Console") ' Build a Console.WriteLine statement. Dim cs1 As New CodeMethodInvokeExpression(csSystemConsoleType, "WriteLine", New CodePrimitiveExpression("Hello World!")) ' Add the WriteLine call to the statement collection. start.Statements.Add(cs1) ' Build another Console.WriteLine statement. Dim cs2 As New CodeMethodInvokeExpression(csSystemConsoleType, "WriteLine", New CodePrimitiveExpression("Press the Enter key to continue.")) ' Add the WriteLine call to the statement collection. start.Statements.Add(cs2) ' Build a call to System.Console.ReadLine. Dim csReadLine As New CodeMethodInvokeExpression(csSystemConsoleType, "ReadLine") ' Add the ReadLine statement. start.Statements.Add(csReadLine) ' Add the code entry point method to ' the Members collection of the type. class1.Members.Add(start) Return compileUnit End Function 'BuildHelloWorldGraph Shared Sub LogMessage(ByVal [text] As String) Console.WriteLine([text]) End Sub 'LogMessage Shared Sub OutputResults(ByVal results As CompilerResults) LogMessage(("NativeCompilerReturnValue=" + results.NativeCompilerReturnValue.ToString())) Dim s As String For Each s In results.Output LogMessage(s) Next s End Sub 'OutputResults End Class 'Program
using System; using System.CodeDom; using System.CodeDom.Compiler; using System.IO; using System.Text.RegularExpressions; namespace BasicCodeDomApp { class Program { static string providerName = "cs"; static string sourceFileName = "test.cs"; static void Main(string[] args) { CodeDomProvider provider = CodeDomProvider.CreateProvider(providerName); LogMessage("Building CodeDOM graph..."); CodeCompileUnit cu = new CodeCompileUnit(); cu = BuildHelloWorldGraph(); StringWriter sw = new StringWriter(); LogMessage("Generating code..."); provider.GenerateCodeFromCompileUnit(cu, sw, null); string output = sw.ToString(); output = Regex.Replace(output, "Runtime Version:[^\r\n]*", "Runtime Version omitted for demo"); LogMessage("Dumping source..."); LogMessage(output); LogMessage("Writing source to file..."); Stream s = File.Open(sourceFileName, FileMode.Create); StreamWriter t = new StreamWriter(s); t.Write(output); t.Close(); s.Close(); CompilerParameters opt = new CompilerParameters(new string[]{ "System.dll" }); opt.GenerateExecutable = true; opt.OutputAssembly = "HelloWorld.exe"; opt.TreatWarningsAsErrors = true; opt.IncludeDebugInformation = true; opt.GenerateInMemory = true; opt.CompilerOptions = "/doc:HelloWorldDoc.xml"; CompilerResults results; LogMessage("Compiling with " + providerName); results = provider.CompileAssemblyFromFile(opt, sourceFileName); OutputResults(results); if (results.NativeCompilerReturnValue != 0) { LogMessage(""); LogMessage("Compilation failed."); } else { LogMessage(""); LogMessage("Demo completed successfully."); } File.Delete(sourceFileName); } // Build a Hello World program graph using // System.CodeDom types. public static CodeCompileUnit BuildHelloWorldGraph() { // Create a new CodeCompileUnit to contain // the program graph. CodeCompileUnit compileUnit = new CodeCompileUnit(); // Declare a new namespace called Samples. CodeNamespace samples = new CodeNamespace("Samples"); // Add the new namespace to the compile unit. compileUnit.Namespaces.Add(samples); // Add the new namespace import for the System namespace. samples.Imports.Add(new CodeNamespaceImport("System")); // Declare a new type called Class1. CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1"); class1.Comments.Add(new CodeCommentStatement("<summary>", true)); class1.Comments.Add(new CodeCommentStatement("Create a Hello World application.", true)); class1.Comments.Add(new CodeCommentStatement(@"<seealso cref=" + '"' + "Class1.Main" + '"' + "/>", true)); class1.Comments.Add(new CodeCommentStatement("</summary>", true)); // Add the new type to the namespace type collection. samples.Types.Add(class1); // Declare a new code entry point method. CodeEntryPointMethod start = new CodeEntryPointMethod(); start.Comments.Add(new CodeCommentStatement("<summary>", true)); start.Comments.Add(new CodeCommentStatement("Main method for HelloWorld application.", true)); start.Comments.Add(new CodeCommentStatement(@"<para>Add a new paragraph to the description.</para>", true)); start.Comments.Add(new CodeCommentStatement("</summary>", true)); // Create a type reference for the System.Console class. CodeTypeReferenceExpression csSystemConsoleType = new CodeTypeReferenceExpression("System.Console"); // Build a Console.WriteLine statement. CodeMethodInvokeExpression cs1 = new CodeMethodInvokeExpression( csSystemConsoleType, "WriteLine", new CodePrimitiveExpression("Hello World!")); // Add the WriteLine call to the statement collection. start.Statements.Add(cs1); // Build another Console.WriteLine statement. CodeMethodInvokeExpression cs2 = new CodeMethodInvokeExpression( csSystemConsoleType, "WriteLine", new CodePrimitiveExpression("Press the Enter key to continue.")); // Add the WriteLine call to the statement collection. start.Statements.Add(cs2); // Build a call to System.Console.ReadLine. CodeMethodInvokeExpression csReadLine = new CodeMethodInvokeExpression( csSystemConsoleType, "ReadLine"); // Add the ReadLine statement. start.Statements.Add(csReadLine); // Add the code entry point method to // the Members collection of the type. class1.Members.Add(start); return compileUnit; } static void LogMessage(string text) { Console.WriteLine(text); } static void OutputResults(CompilerResults results) { LogMessage("NativeCompilerReturnValue=" + results.NativeCompilerReturnValue.ToString()); foreach (string s in results.Output) { LogMessage(s); } } } }
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CodeCommentStatement コンストラクタ (CodeComment)
アセンブリ: System (system.dll 内)
構文
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CodeCommentStatement コンストラクタ (String)
アセンブリ: System (system.dll 内)
構文
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CodeCommentStatement コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
CodeCommentStatement () | CodeCommentStatement クラスの新しいインスタンスを初期化します。 |
CodeCommentStatement (CodeComment) | コメントを指定して、CodeCommentStatement クラスの新しいインスタンスを初期化します。 |
CodeCommentStatement (String) | 内容としてテキストを指定して、CodeCommentStatement クラスの新しいインスタンスを初期化します。 |
CodeCommentStatement (String, Boolean) | テキストとドキュメント コメント フラグを指定して、CodeCommentStatement クラスの新しいインスタンスを初期化します。 |
CodeCommentStatement コンストラクタ ()
アセンブリ: System (system.dll 内)
構文
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- CodeCommentStatement コンストラクタのページへのリンク