Angenommen, ich habe ein generisches Mitglied in einer Klasse oder Methode, also:
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
Wenn ich die Klasse instanziiere, T
wird das MyTypeObject1
, sodass die Klasse eine generische Listeneigenschaft hat : List<MyTypeObject1>
. Gleiches gilt für eine generische Methode in einer nicht generischen Klasse:
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
Ich würde gerne wissen, welche Art von Objekten die Liste meiner Klasse enthält. Die aufgerufene Eigenschaft list Bar
oder die lokale Variable baz
enthält also welche Art von T
?
Ich kann nicht Bar[0].GetType()
, weil die Liste möglicherweise keine Elemente enthält. Wie kann ich es tun?
object
,IList
oder ähnlich - aber das könnte sehr wohl die richtige Antwort sein.