Typy częściowe

Modyfikator partial pozwala rozbić definicję klasy (ew. struktury, interfejsu lub szablonu) na wiele kawałów, przechowywanych w różnych plikach. Przykładowo:

public partial class Klient {		// Pierwszy kawałek definicji
	private int imie;
	private string adres;
	...
}

public partial class Klient {		// kolejny kawałek definicji klasy.
	public void zamów( ) { ... }
}

Kiedy kompilujemy razem oba kawałki kodu, efekt jest taki sam jakby cała definicja klasy była zapisana w jednym kawałku. Jednak należy pamiętać o tym, że wszystkie części klasy muszą być skompilowane wspólnie (wszystkie kawałki definicji muszą być ze sobą scalone już podczas kompilacji).

Każdy fragment typu częściowego musi zawierać modyfikator partial. Jeżeli deklarujemy klasę z tym modyfikatorem to wskazujemy, że jej pozostałe części mogą pojawić się w innym miejscu - ale wcale nie muszą.

Ponadto wszystkie części tej samej klasy muszą być zdefiniowane w tej samej przestrzeni nazw oraz posiadać ten sam rodzaj dostępu (public, protected, internal czy private). Jeżeli którakolwiek z części klasy zawiera modyfikator abstract lub sealed to odnosi się on do całej klasy. Podobnie z dziedziczeniem - wystarczy aby wskazanie klasy nadrzędnej wystąpiło jedynie w jednym miejscu. Jednak gdybyśmy część deklaracji typu częściowego opatrzyli modyfikatorem unsafe, to modyfikator ten będzie odnosił się tylko do tej szczególnej części.


prev | Strona Główna | next

Copyright © 2006 Daniel Dusiński
Wszelkie prawa zastrzeżone