Leggere in inglese

Condividi tramite


CodeConstructor Classe

Definizione

Rappresenta una dichiarazione di un costruttore di istanze di un tipo.

public class CodeConstructor : System.CodeDom.CodeMemberMethod
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeConstructor : System.CodeDom.CodeMemberMethod
Ereditarietà
Attributi

Esempio

In questo esempio viene illustrato l'uso di un oggetto CodeConstructor per dichiarare diversi tipi di costruttori.

// 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() {
//     }
// }

Commenti

CodeConstructor può essere usato per rappresentare una dichiarazione di un costruttore di istanza per un tipo. Usare CodeTypeConstructor per dichiarare un costruttore statico per un tipo.

Se il costruttore chiama un costruttore di classe di base, impostare gli argomenti del costruttore per il costruttore della classe base nella BaseConstructorArgs proprietà. Se il costruttore esegue l'overload di un altro costruttore per il tipo, impostare gli argomenti del costruttore per passare al costruttore del tipo di overload nella ChainedConstructorArgs proprietà.

Costruttori

CodeConstructor()

Inizializza una nuova istanza della classe CodeConstructor.

Proprietà

Attributes

Ottiene o imposta gli attributi del membro.

(Ereditato da CodeTypeMember)
BaseConstructorArgs

Restituisce l'insieme degli argomenti del costruttore di base.

ChainedConstructorArgs

Restituisce l'insieme degli argomenti concatenati del costruttore.

Comments

Ottiene l'insieme di commenti per il membro del tipo.

(Ereditato da CodeTypeMember)
CustomAttributes

Ottiene o imposta gli attributi personalizzati del membro.

(Ereditato da CodeTypeMember)
EndDirectives

Ottiene le direttive finali per il membro.

(Ereditato da CodeTypeMember)
ImplementationTypes

Restituisce i tipi di dati delle interfacce implementate da questo metodo, a meno che si tratti dell'implementazione di un metodo privato, indicata dalla proprietà PrivateImplementationType.

(Ereditato da CodeMemberMethod)
LinePragma

Ottiene o imposta la riga in cui è contenuta l'istruzione per il membro del tipo.

(Ereditato da CodeTypeMember)
Name

Ottiene o imposta il nome del membro.

(Ereditato da CodeTypeMember)
Parameters

Restituisce le dichiarazioni dei parametri relativi al metodo.

(Ereditato da CodeMemberMethod)
PrivateImplementationType

Ottiene o imposta il tipo di dati dell'interfaccia di cui il metodo, se privato, implementa un metodo, se esistente.

(Ereditato da CodeMemberMethod)
ReturnType

Ottiene o imposta il tipo di dati del valore restituito dal metodo.

(Ereditato da CodeMemberMethod)
ReturnTypeCustomAttributes

Restituisce gli attributi personalizzati del tipo restituito dal metodo.

(Ereditato da CodeMemberMethod)
StartDirectives

Ottiene le direttive iniziali per il membro.

(Ereditato da CodeTypeMember)
Statements

Restituisce le istruzioni all'interno del metodo.

(Ereditato da CodeMemberMethod)
TypeParameters

Ottiene i parametri del tipo per il metodo generico corrente.

(Ereditato da CodeMemberMethod)
UserData

Ottiene i dati definibili dall'utente per l'oggetto corrente.

(Ereditato da CodeObject)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

PopulateImplementationTypes

Evento che verrà generato al primo accesso all'insieme ImplementationTypes.

(Ereditato da CodeMemberMethod)
PopulateParameters

Evento che verrà generato al primo accesso all'insieme Parameters.

(Ereditato da CodeMemberMethod)
PopulateStatements

Evento che verrà generato al primo accesso all'insieme Statements.

(Ereditato da CodeMemberMethod)

Si applica a

Prodotto Versioni
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9