当前位置: 首页>>代码示例>>C#>>正文


C# CodeConstructor类代码示例

本文整理汇总了C#中System.CodeDom.CodeConstructor的典型用法代码示例。如果您正苦于以下问题:C# CodeConstructor类的具体用法?C# CodeConstructor怎么用?C# CodeConstructor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CodeConstructor类属于System.CodeDom命名空间,在下文中一共展示了CodeConstructor类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CodeCompileUnit

// This example declares two types, one of which inherits from another,
    // and creates a set of different styles of constructors using CodeConstructor.

    // Creates a new CodeCompileUnit to contain the program graph.
    CodeCompileUnit CompileUnit = new CodeCompileUnit();
    // Declares a new namespace object and names it.
    CodeNamespace Samples = new CodeNamespace("Samples");
    // Adds the namespace object to the compile unit.
    CompileUnit.Namespaces.Add( Samples );
    // Adds a new namespace import for the System namespace.
    Samples.Imports.Add( new CodeNamespaceImport("System") );            
    
    // Declares a new type and names it.
    CodeTypeDeclaration BaseType = new CodeTypeDeclaration("BaseType");                                                
    // Adds the new type to the namespace object's type collection.
    Samples.Types.Add(BaseType);
    
    // Declares a default constructor that takes no arguments.
    CodeConstructor defaultConstructor = new CodeConstructor();
    defaultConstructor.Attributes = MemberAttributes.Public;
    // Adds the constructor to the Members collection of the BaseType.
    BaseType.Members.Add(defaultConstructor);

    // Declares a constructor that takes a string argument.
    CodeConstructor stringConstructor = new CodeConstructor();
    stringConstructor.Attributes = MemberAttributes.Public;
    // Declares a parameter of type string named "TestStringParameter".
    stringConstructor.Parameters.Add( new CodeParameterDeclarationExpression("System.String", "TestStringParameter") );
    // Adds the constructor to the Members collection of the BaseType.
    BaseType.Members.Add(stringConstructor);
                
    // Declares a type that derives from BaseType and names it.
    CodeTypeDeclaration DerivedType = new CodeTypeDeclaration("DerivedType");
    // The DerivedType class inherits from the BaseType class.
    DerivedType.BaseTypes.Add( new CodeTypeReference("BaseType") );
    // Adds the new type to the namespace object's type collection.
    Samples.Types.Add(DerivedType);        
            
    // Declare a constructor that takes a string argument and calls the base class constructor with it.
    CodeConstructor baseStringConstructor = new CodeConstructor();
    baseStringConstructor.Attributes = MemberAttributes.Public;
    // Declares a parameter of type string named "TestStringParameter".    
    baseStringConstructor.Parameters.Add( new CodeParameterDeclarationExpression("System.String", "TestStringParameter") );
    // Calls a base class constructor with the TestStringParameter parameter.
    baseStringConstructor.BaseConstructorArgs.Add( new CodeVariableReferenceExpression("TestStringParameter") );
    // Adds the constructor to the Members collection of the DerivedType.
    DerivedType.Members.Add(baseStringConstructor);
    
    // Declares a constructor overload that calls another constructor for the type with a predefined argument.
    CodeConstructor overloadConstructor = new CodeConstructor();
    overloadConstructor.Attributes = MemberAttributes.Public;
    // Sets the argument to pass to a base constructor method.
    overloadConstructor.ChainedConstructorArgs.Add( new CodePrimitiveExpression("Test") );
    // Adds the constructor to the Members collection of the DerivedType.
    DerivedType.Members.Add(overloadConstructor);        
    
    // Declares a constructor overload that calls the default constructor for the type.
    CodeConstructor overloadConstructor2 = new CodeConstructor();
    overloadConstructor2.Attributes = MemberAttributes.Public;
    overloadConstructor2.Parameters.Add( new CodeParameterDeclarationExpression("System.Int32", "TestIntParameter") );
    // Sets the argument to pass to a base constructor method.
    overloadConstructor2.ChainedConstructorArgs.Add( new CodeSnippetExpression("") );
    // Adds the constructor to the Members collection of the DerivedType.
    DerivedType.Members.Add(overloadConstructor2);            

    // A C# code generator produces the following source code for the preceeding example code:

    // public class BaseType {
    //     
    //     public BaseType() {
    //     }
    //        
    //     public BaseType(string TestStringParameter) {
    //     }
    // }
    //    
    // public class DerivedType : BaseType {
    //        
    //     public DerivedType(string TestStringParameter) : 
    //             base(TestStringParameter) {
    //     }
    //        
    //     public DerivedType() : 
    //             this("Test") {
    //     }
    //
    //     public DerivedType(int TestIntParameter) : 
    //                this() {
    //     }
    // }
开发者ID:.NET开发者,项目名称:System.CodeDom,代码行数:90,代码来源:CodeConstructor


注:本文中的System.CodeDom.CodeConstructor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。