2009-06-26 10 views
9

Czy istnieje jakiś narzut z wykorzystaniem klas częściowych w przypadku pamięci, wydajności itp.?Korzystanie z klas częściowych

Jeśli utworzymy klasę częściową, możemy określić, czy klasa była częściowa czy nie, używając reflektora?

Odpowiedz

16

Nie. Są one kompilowane do tej samej IL, tak jakby nie były częściowe. Jest to kompilacja czysto - CLR nawet nie wie, że kiedykolwiek były częściowe.

Zauważ, że z partial methods wprowadzone do C# 3, metoda nie jest nawet emitowane w IL, chyba że jest zaimplementowany w jednym z plików. Zarówno wywołania, jak i deklaracja zostają usunięte przez kompilator.

Jest możliwe, że będzie to spowolnić kompilator niezauważalnego ułamek milisekundy, oczywiście :)

+0

Jeśli utworzymy klasę częściową, możemy określić, czy klasa była częściowa czy nie, używając reflektora? – rahul

+2

Częściowo przypomina białą przestrzeń, tylko z zaangażowanym EOF. Kompilator je analizuje, ale po tym nie ma śladu, jaki kiedykolwiek istniał. –

+1

@Phoenix: Nie. Mogłoby się to wydarzyć tylko wtedy, gdyby do analizy były używane symbole debugowania i okazało się, że część kodu pochodziła z jednego pliku, a część z innego. –

3

Nie, wszystkie pliki klas zostaną skonsolidowane w czasie kompilacji.

Oto msdn article dla typów częściowych.

Każdy plik źródłowy zawiera sekcję definicji typu lub metody, a wszystkie części są łączone podczas kompilacji aplikacji.

2

nr Są one zebrane w jednej klasie. Jest to wyłącznie funkcja językowa.

Powiązane problemy