Metody i klasy częściowe - partial methods, partial class
Typy częściowe - jedna klasa w kilku plikach.
Metody i klasy częściowe to nowość wprowadzona w
C# 3.0. Dzięki słowu kluczowemu
partial możliwe jest
podzielenie klasy, struktury, interfejsu lub metody na
kilka części w osobnych plikach.
Wszystkie klasy częściowe muszą być dostępne do kompilacji ponieważ zostają połączone w jedną klasę i muszą sie znajdować w obrębie jednego pliku
.dll lub
.exe.
Aby można było stworzyć częściową klasę lub metodę:
- każda część musi być poprzedzona słowem kluczowym partial,
- wszystkie części muszą mieć taka samą dostępność (public, private itp.),
- jeśli jedna część dziedziczy po innym typie to wszystkie części po nim dziedziczą,
- jeśli jakakolwiek część jest zadeklarowana jako sealed to wszystkie części są sealed,
- jeśli jakakolwiek część jest zadeklarowana jako abstract to wszystkie części są abstract.
Przykładowy kod klasy częściowej:
namespace Aplikacja1
{
partial class Czesciowa
{
public void Metoda1(){}
public void Metoda2(){}
}
class Program
{
static void Main(string[] args)
{
Czesciowa obiekt = new Czesciowa();
obiekt.Metoda3();
obiekt.Metoda1();
}
}
partial class Czesciowa
{
public void Metoda3() { }
public void Metoda4() { }
}
}
Metody częściowe
W przypadku
metod częściowych, w jednym pliku możemy zamieścić
deklaracje metody a w innym pliku
ciało metody. Podczas kompilacji, deklaracje metod które nie mają ciała w żadnym pliku
zostają usunięte. Dzięki temu kod jest optymalny.
Metody częściowe:
- muszą zwracać void i zaczynać się od słowa kluczowego partial,
- mogą przyjmować parametry przez referencje (ref), ale nie mogą przyjmować parametrów przez wyjście (out),
- są niejawnie private i nie mogą być virtual,
- nie mogą być extern,
- mogą być static oraz unsafe,
- mogą być generyczne,
- można tworzyć delegaty do metod, które są zdefiniowane i zaimplementowane (mają ciało funkcji).
Deklaracja i ciało metody częściowej:
//plik nr 1
public int Metoda();
//plik nr 2
public int Metoda()
{
//ciało metody
}
Więcej informacji na temat metod i klas częściowych:
http://msdn.microsoft.com/pl-pl/library/wa80x488.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):