Laden...

Typ als Parameter übergeben?

Erstellt von Seikilos vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.884 Views
S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 15 Jahren
Typ als Parameter übergeben?

Ist es möglich einen Typen als Parameter zu übergeben?

Ich muss generisch in einer Methode typeof(xy) nutzen, nun kann sich dieser Typ allerdings ändern und ich würde gerne dies parametrisieren.

Life is a short

Gelöschter Account
vor 15 Jahren

schon mal mit generics probiert?

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 15 Jahren

Jau, in dem gleichen Zuge habe ich ein Problem mit generics.
Ich kann ja schlecht in einer Klasse so etwas schreiben:


public void foo<T>()
{
  T t = new T();
}

Life is a short

5.742 Beiträge seit 2007
vor 15 Jahren

Hallo Seikilos,

Ich kann ja schlecht in einer Klasse so etwas schreiben:

doch - wenn du ein "where T : new()" Constraint zur Klassendefinition hinzufügst.

S
Seikilos Themenstarter:in
753 Beiträge seit 2006
vor 15 Jahren

Die Klasse ist jedoch nicht generisch, die Methode schon.

Wie kann ich denn dann Ts Methoden nutzen, die als Generic noch nicht bekannt sind?

Life is a short

5.742 Beiträge seit 2007
vor 15 Jahren

...zur Klassendefinition hinzufügst.

...oder eben nach dem Methodenrumpf.

3.971 Beiträge seit 2006
vor 15 Jahren

Der Typ muss bei generics immer bekannt sein und das schon zur Compile-Zeit.


class Foo{
  public T Bar<T>() where T: new(){
    return new T();
  }
}

wäre das entsprechende Pendant zur generischen Klasse

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...