2016-03-20 21 views
0

Ich bin neu in C# und ich versuche, eine Klasse zu generieren, die Templates verwendet, generischen Typ für eines der Argumente.Die Verwendung des generischen Typs 'State <T>' erfordert 1 Typ Argumente C#

class State<T> 
{ 

    private T state;   // the state represented by a string 
    private double cost;  // cost to reach this state (set by a setter) 
    private State cameFrom; // the state we came from to this state 

bekomme ich folgende Fehlermeldung:

Using the generic type 'State<T>' requires 1 type arguments 

ich diese Action delegate in .NET2 - Using the generic type 'System.Action<T>' requires '1' type arguments gefunden habe, aber es ist nicht mein Fall .. da ich in C# neu bin habe ich keinen Code hinzugefügt die regulären cis-Sharp-Bibliotheken.

HILFE.?

+3

erklären Sie ' cameFrom Privat Staat erklären sollte,' statt 'privaten Staat cameFrom;' – Valentin

+0

Ihr Kommentar liest „den Zustand durch einen String repräsentiert“, aber dies legt nahe, ' state 'sollte vom Typ' string' sein, an diesem Punkt können Sie die Klasse einfach als nicht generisch definieren. Wie benutzt du eigentlich 'T'? Was bedeutet das für deine Klasse? Abhängig von dieser Bedeutung kann @ Valentins Kommentar * eine angemessene Lösung sein, aber für andere mögliche Bedeutungen kann es völlig falsch sein. – hvd

Antwort

0

Das Problem ist, dass Sie keine State Klasse haben, haben Sie eine generische Klasse State<T>.

So sollten Sie private State<T> cameFrom; statt private State cameFrom;

Verwandte Themen