2017-01-24 23 views
2

Ich muss eine Implementierung eines Stapels erstellen.ist ein "Feld" aber wird wie ein Typ verwendet - C#

Ich möchte eine Klasse erstellen, die ich wie so verwenden können:

Stack<string> myStack = new Stack<string>(); 

myStack.Push("Harold"); 
myStack.Push("Evie"); 

myStack.Pop(); // => "Evie" 

Hier ist, was ich bisher geschrieben:

public class Stack<T> { 
    private T[] stack; 
    private int stackPointer; 

    public Stack<T>() { 
     this.stackPointer = -1; 
    } 
} 

Aber schon bin ich diesen Fehler aus VS bekommen:

this.stackPointer = -1; 
// ERROR: stackPointer is a field but is used like a type. 

Was bedeutet das und wie behebe ich es? (Anmerkung Ich bin sehr neu in C#)

+10

Änderung 'Öffentliche Stapel () {' auf 'öffentlichen Stack() {'. –

+2

Ihr ctor benötigt nicht das Argument type – Jonesopolis

+0

Keine Antwort, aber [es existiert] (https://msdn.microsoft.com/en-us/library/3278tedw.aspx) –

Antwort

1

Versuchen Sie, die Art in den Konstruktor zu entfernen, wie folgt aus:

public class Stack<T> { 
    private T[] stack; 
    private int stackPointer; 

    public Stack() { 
     this.stackPointer = -1; 
    } 
} 

Werfen Sie einen Blick auf diese Microsoft article über Generika, die tatsächlich eine Implementierung eines generischen Stapel Klasse umfasst .

enter image description here

+1

http://stackoverflow.com/help/how-to-answer "Nicht alle Fragen können oder sollten hier beantwortet werden. Sparen Sie sich etwas Frustration und vermeiden Sie es, Fragen zu beantworten, die ... • ... wurden bereits gefragt und habe schon oft geantwortet. " [Wie lautet die Syntax für einen Standardkonstruktor für eine generische Klasse?] (Http://stackoverflow.com/questions/9701106/what-is-the-syntax-for-a-default-constructor-for-a- generische Klasse). –

+0

Guter Anruf, danke Dan. Ich werde lesen, was das sagt – MDiesel

+1

Es lohnt sich zu erklären, warum der angegebene Fehler passiert, sowie die "unerwartete (' wenn die Unterschrift des Konstruktors falsch ist, so dass dies kein 100% Duplikat ist – doctorlove

Verwandte Themen