CodeConstructor Klasa

Definicja

Reprezentuje deklarację konstruktora wystąpienia typu.

C#
public class CodeConstructor : System.CodeDom.CodeMemberMethod
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeConstructor : System.CodeDom.CodeMemberMethod
Dziedziczenie
Atrybuty

Przykłady

W tym przykładzie pokazano użycie elementu do CodeConstructor deklarowania kilku typów konstruktorów.

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

Uwagi

CodeConstructor może służyć do reprezentowania deklaracji konstruktora wystąpienia dla typu. Służy CodeTypeConstructor do deklarowania konstruktora statycznego dla typu.

Jeśli konstruktor wywołuje konstruktor klasy bazowej, ustaw argumenty konstruktora klasy bazowej BaseConstructorArgs we właściwości . Jeśli konstruktor przeciąża innego konstruktora dla typu, ustaw argumenty konstruktora, aby przekazać do przeciążonego konstruktora typu we ChainedConstructorArgs właściwości .

Konstruktory

CodeConstructor()

Inicjuje nowe wystąpienie klasy CodeConstructor.

Właściwości

Attributes

Pobiera lub ustawia atrybuty elementu członkowskiego.

(Odziedziczone po CodeTypeMember)
BaseConstructorArgs

Pobiera kolekcję argumentów konstruktora podstawowego.

ChainedConstructorArgs

Pobiera kolekcję argumentów konstruktora łańcuchowego.

Comments

Pobiera kolekcję komentarzy dla elementu członkowskiego typu.

(Odziedziczone po CodeTypeMember)
CustomAttributes

Pobiera lub ustawia atrybuty niestandardowe elementu członkowskiego.

(Odziedziczone po CodeTypeMember)
EndDirectives

Pobiera dyrektywy końcowe dla elementu członkowskiego.

(Odziedziczone po CodeTypeMember)
ImplementationTypes

Pobiera typy danych interfejsów zaimplementowanych przez tę metodę, chyba że jest to implementacja metody prywatnej, która jest wskazywana przez PrivateImplementationType właściwość.

(Odziedziczone po CodeMemberMethod)
LinePragma

Pobiera lub ustawia wiersz, w którym występuje instrukcja składowa typu.

(Odziedziczone po CodeTypeMember)
Name

Pobiera lub ustawia nazwę elementu członkowskiego.

(Odziedziczone po CodeTypeMember)
Parameters

Pobiera deklaracje parametrów dla metody .

(Odziedziczone po CodeMemberMethod)
PrivateImplementationType

Pobiera lub ustawia typ danych interfejsu, jeśli jest prywatna, implementuje metodę , jeśli istnieje.

(Odziedziczone po CodeMemberMethod)
ReturnType

Pobiera lub ustawia typ danych zwracanej wartości metody.

(Odziedziczone po CodeMemberMethod)
ReturnTypeCustomAttributes

Pobiera atrybuty niestandardowe zwracanego typu metody.

(Odziedziczone po CodeMemberMethod)
StartDirectives

Pobiera dyrektywy początkowe dla elementu członkowskiego.

(Odziedziczone po CodeTypeMember)
Statements

Pobiera instrukcje w metodzie .

(Odziedziczone po CodeMemberMethod)
TypeParameters

Pobiera parametry typu dla bieżącej metody ogólnej.

(Odziedziczone po CodeMemberMethod)
UserData

Pobiera dane, które można definiować przez użytkownika dla bieżącego obiektu.

(Odziedziczone po CodeObject)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

PopulateImplementationTypes

Zdarzenie, które zostanie podniesione po raz pierwszy podczas uzyskiwania ImplementationTypes dostępu do kolekcji.

(Odziedziczone po CodeMemberMethod)
PopulateParameters

Zdarzenie, które zostanie podniesione po raz pierwszy podczas uzyskiwania Parameters dostępu do kolekcji.

(Odziedziczone po CodeMemberMethod)
PopulateStatements

Zdarzenie, które zostanie podniesione po raz pierwszy podczas uzyskiwania Statements dostępu do kolekcji.

(Odziedziczone po CodeMemberMethod)

Dotyczy

Produkt Wersje
.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