gibt es eine Möglichkeit in einer statischen Methode den Typen der Klasse,
indem sich die Methode befindet, herauszubekommen. Also auch dann, wenn eine
andere Klasse von der Klasse erbt?
Beispiel:
Klasse A implementiert die Methode GetClassType, welche static ist. Klasse B
erbt von Klasse A. Wenn ich nun B.GetClassType aufrufe, würde ich gerne den
Typen von B bekommen.
Die Implementation bei einer nicht-statischen Methode würde so aussehen:
public System.Type GetClassType
{
get
{
return this.GetType();
}
}
und bei einer statischen Methode würde sie so aussehen:
public static System.Type GetClassType
{
get
{
return typeof(A);
}
}
nur das diese Implementation immer den Typen von A zurück liefert, anstatt
wenn ich die Methode auf B aufrufe mir den Typen von B zurückzuliefern.
Schöne Grüße,
Thorsten Blawatt
> und bei einer statischen Methode würde sie so aussehen:
>
> public static System.Type GetClassType
> {
> get
> {
> return typeof(A);
> }
> }
>
> nur das diese Implementation immer den Typen von A zurück liefert,
> anstatt wenn ich die Methode auf B aufrufe mir den Typen von B
> zurückzuliefern.
Da statische Methoden nicht virtuell sind, kannst Du die statische Methode
nur in B neu definieren:
class B : A {
public new static Type GetClassType{
get {return typeof(B); }
}
}
Wobei: Welchen Sinn hat das Ganze? Im Gegensatz zu instanz-Methoden können
statische Members können ja nicht vituell sein. Also musst Du im Source-Code
ohnehin immer A.GetClassType() bzw. B.GetClassType() schreiben (und nicht
z.B. irgendeineInstanz.GetClassType()). Dann kannst Du ja gleich typeof(A) /
typeof(B) schreiben, oder?
OK?
mfg GP
public class<T> where T: new()
{
....
}
vielleicht kannst du das auch irgendwie anwenden bei deinem Problem.
Alex
"Thorsten Blawatt" <thorsten...@syncos.com> schrieb im Newsbeitrag
news:OarBRSRR...@TK2MSFTNGP03.phx.gbl...