Udostępnij za pośrednictwem


CodeTypeDeclaration.IsPartial Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy deklaracja typu jest kompletna, czy częściowa.

public:
 property bool IsPartial { bool get(); void set(bool value); };
public bool IsPartial { get; set; }
member this.IsPartial : bool with get, set
Public Property IsPartial As Boolean

Wartość właściwości

true jeśli deklaracja klasy lub struktury jest częściową reprezentacją implementacji; false jeśli deklaracja jest kompletną implementacją klasy lub struktury. Wartość domyślna to false.

Przykłady

W tym przykładzie pokazano użycie metody w CodeTypeDeclaration celu dostarczenia implementacji klasy w wielu deklaracjach. Przykład kompiluje początkową instrukcję deklaracji klasy i ustawia IsPartial właściwość na true.

CodeTypeDeclaration^ baseClass = gcnew CodeTypeDeclaration( "DocumentProperties" );
baseClass->IsPartial = true;
baseClass->IsClass = true;
baseClass->Attributes = MemberAttributes::Public;
baseClass->BaseTypes->Add( gcnew CodeTypeReference( System::Object::typeid ) );

// Add the DocumentProperties class to the namespace.
sampleSpace->Types->Add( baseClass );
            CodeTypeDeclaration baseClass = new CodeTypeDeclaration("DocumentProperties");
            baseClass.IsPartial = true;
            baseClass.IsClass = true;
            baseClass.Attributes = MemberAttributes.Public;
            baseClass.BaseTypes.Add(new CodeTypeReference(typeof(System.Object
)));

            // Add the DocumentProperties class to the namespace.
            sampleSpace.Types.Add(baseClass);
Dim baseClass As CodeTypeDeclaration = New CodeTypeDeclaration("DocumentProperties")
baseClass.IsPartial = True
baseClass.IsClass = True
baseClass.Attributes = MemberAttributes.Public
baseClass.BaseTypes.Add(New CodeTypeReference(GetType(System.Object)))

' Add the DocumentProperties class to the namespace.
sampleSpace.Types.Add(baseClass)

Inna metoda w przykładzie rozszerza implementację klasy. Ta metoda tworzy nową instrukcję deklaracji typu dla istniejącej klasy i ustawia IsPartial właściwość na true. Kompilator łączy ze sobą dwie częściowe deklaracje typu dla pełnej implementacji klasy.

CodeTypeDeclaration^ baseClass = gcnew CodeTypeDeclaration( "DocumentProperties" );
baseClass->IsPartial = true;
baseClass->IsClass = true;
baseClass->Attributes = MemberAttributes::Public;

// Extend the DocumentProperties class in the unit namespace.
( *docPropUnit)->Namespaces[ 0 ]->Types->Add( baseClass );
CodeTypeDeclaration baseClass = new CodeTypeDeclaration("DocumentProperties");
baseClass.IsPartial = true;
baseClass.IsClass = true;
baseClass.Attributes = MemberAttributes.Public;

// Extend the DocumentProperties class in the unit namespace.
docPropUnit.Namespaces[0].Types.Add(baseClass);
Dim baseClass As CodeTypeDeclaration = New CodeTypeDeclaration("DocumentProperties")
baseClass.IsPartial = True
baseClass.IsClass = True
baseClass.Attributes = MemberAttributes.Public

' Extend the DocumentProperties class in the unit namespace.
docPropUnit.Namespaces(0).Types.Add(baseClass)

Uwagi

Implementację klasy lub struktury można utworzyć w jednej pełnej deklaracji lub rozłożyć implementację na wiele deklaracji. Implementacje są często dostarczane w jednej pełnej deklaracji typu. W tym przypadku ustaw właściwość deklaracji IsPartial typu na false, która wskazuje, że deklaracja typu reprezentuje wszystkie szczegóły implementacji klasy lub struktury.

Częściowa deklaracja typu ułatwia tworzenie różnych części implementacji klasy lub struktury w różnych modułach aplikacji. Częściowe deklaracje typów mogą być przechowywane w jednym pliku źródłowym lub rozłożone na wiele plików źródłowych, które ostatecznie są kompilowane razem w celu utworzenia implementacji połączonego typu.

Język C# obsługuje częściowe deklaracje typów klas i struktur za pomocą słowa kluczowego partial . Język Visual Basic obsługuje częściowe deklaracje typów klas i struktur ze Partial słowem kluczowym. Nie wszystkie generatory kodu obsługują częściowe deklaracje typów, dlatego należy przetestować tę obsługę, wywołując metodę Supports z flagą PartialTypes.

Uwaga

Częściowe deklaracje typów są obsługiwane dla klas i struktur. Jeśli określisz częściową deklarację typu dla wyliczenia lub interfejsu, wygenerowany kod generuje błędy kompilatora.

Podczas podawania implementacji klasy lub struktury w wielu deklaracjach ustaw IsPartial właściwość na true wartość dla początkowej deklaracji i wszystkich deklaracji uzupełniających. Początkowa deklaracja musi w pełni określać podpis typu, w tym modyfikatory dostępu, dziedziczone typy i zaimplementowane interfejsy. Deklaracje uzupełniające nie muszą ponownie określać podpisu typu. Błąd kompilatora zazwyczaj powoduje ponowne zdefiniowanie podpisu typu w deklaracji dodatkowej.

Program Visual Studio 2005 używa typów częściowych do oddzielenia kodu wygenerowanego przez użytkownika od kodu projektanta. W projektach aplikacji systemu Windows w języku Visual Basic kod użytkownika jest umieszczany w klasie częściowej, która nie jest kwalifikowana przez słowo kluczowe. Kod dostarczony przez Partial projektanta jest wyświetlany w klasie częściowej zawierającej Partial słowo kluczowe. W języku C#kod użytkownika i kod projektanta są wyświetlane w klasach częściowych identyfikowanych przez partial słowo kluczowe.

Dotyczy

Zobacz też