Ableiten von generischer Klasse

09/07/2008 - 10:16 von Georg Bachmann | Report spam
Hallo,

ich habe folgendes Problem:

Basisklasse:
abstract class CommandBase<T>

von der Leite ich ab:
zb.: class EnterDebug : CommandBase<bool>

Jetzt hat jede Klasse einen Returnwert:
public T Result {
get { return m_objResult; }
protected set { m_objResult = value; }
}



Da wo ich jetzt die einzelnen Commandos verwende, habe ich eine Funktion die
ein solches Commando entgegennimmt.

void sendCommand(CommandBase<keineAhnungWasHierHerGehört> command)

Leider gehts nicht...
Ich hàtte gedacht dass "CommandBase<object> command" gehen müsste, gehts
aber nicht. Wie muss die Funktion die Commands annehmen damits geht?

Vielen lieben Dank für eure Hilfe,

Lg, Georg Bachmann
 

Lesen sie die antworten

#1 Georg Bachmann
09/07/2008 - 11:25 | Warnen spam
Ok, das erste Problem hab ich glaub ich gelöst...
Aber ich hab immer noch eine Frage...
Nàmlich:

public T calcResult(string strResult) {
if(typeof(T) == typeof(bool)) {
return true; //naturàich dann sinnvoller
}

if(typeof(T) == typeof(string)) {
return "string"; //naturàich dann sinnvoller
}

if(typeof(T) == typeof(float)) {
return 1.2; //naturàich dann sinnvoller
}

throw new Exception("Calculation of Type " + typeof(T).Name + " not yet
implemented");

}

er will aber immer dass der returntype T ist... ein zb
return (T)true;
geht aber leider nicht :(

Hat jemand Vorschlàge?

Vielen Dank und lg, Georg

"Georg Bachmann" wrote:

Hallo,

ich habe folgendes Problem:

Basisklasse:
abstract class CommandBase<T>

von der Leite ich ab:
zb.: class EnterDebug : CommandBase<bool>

Jetzt hat jede Klasse einen Returnwert:
public T Result {
get { return m_objResult; }
protected set { m_objResult = value; }
}



Da wo ich jetzt die einzelnen Commandos verwende, habe ich eine Funktion die
ein solches Commando entgegennimmt.

void sendCommand(CommandBase<keineAhnungWasHierHerGehört> command)

Leider gehts nicht...
Ich hàtte gedacht dass "CommandBase<object> command" gehen müsste, gehts
aber nicht. Wie muss die Funktion die Commands annehmen damits geht?

Vielen lieben Dank für eure Hilfe,

Lg, Georg Bachmann

Ähnliche fragen