Powiedzmy, że mam ogólny element w klasie lub metodzie, więc:
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
Kiedy instancję klasy, T
staje się MyTypeObject1
, więc klasa ma ogólną listę właściwość: List<MyTypeObject1>
. To samo dotyczy metody ogólnej w klasie innej niż ogólna:
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
Chciałbym wiedzieć, jaki rodzaj obiektów zawiera lista mojej klasy. Tak więc właściwość list o nazwie Bar
lub zmienna lokalna baz
zawiera jakiego typu T
?
Nie mogę tego zrobić Bar[0].GetType()
, ponieważ lista może zawierać zero elementów. Jak mogę to zrobić?
object
,IList
lub podobne - ale może to równie dobrze być prawidłowa odpowiedź.