2012-04-04 1 views
0

Zunächst entschuldige ich mich für eine so einfache Frage an so einem anspruchsvollen Ort. Ich schreibe eine einmalige App, um eine Textdatei zu parsen. Es ist eine Konsolen-App mit dem typischen statischen Main().Anzahl der Argumente zu Konstruktor Fehler

Ich habe eine andere Klasse wie folgt erklärt. Ich habe das get/set aufgrund der Art der Operation weggelassen (es wird einmal verwendet werden ... nie wieder).

public class Entry 
{ 
    public List<string> numbers; 
    public string rm; 
    public string time; 
    public string desc; 

    Entry(List<string> n, string r, string t, string d) 
    { 
     numbers = n; 
     rm = r; 
     time = t; 
     desc = d; 
    } 
} 

Wenn ich versuche, die Klasse in Main() mit dieser Aussage zu instanziiert:

Entry newEntry = new Entry(numbers, rn, time, desc); 

ich den Fehler erhalten, der Eintrag keinen Konstruktor hat, die 4 Argumente übernimmt. Alle übergebenen Variablen stimmen mit den Konstruktortypdefinitionen überein. Ich bin schlafarm und verwirrt. Was mache ich falsch?

Danke und Entschuldigung für die dumme Frage.

+0

Welche Sprache ist das? – hmjd

+0

Ist das C++, Java oder was? – Bohemian

+0

@hmjd: Sieht aus wie C#. –

Antwort

5

Sie den Konstruktor privat gemacht haben. Wenn Sie keinen Zugriffsmodifikator für Ihren Konstruktor verwenden, wird dieser standardmäßig als privat festgelegt. Setzen Sie "public" vor den Konstruktor und es sollte funktionieren:

public class Entry 
{ 
    public List<string> numbers; 
    public string rm; 
    public string time; 
    public string desc; 

    public Entry(List<string> n, string r, string t, string d) 
    { 
     numbers = n; 
     rm = r; 
     time = t; 
     desc = d; 
    } 
} 
+0

Danke! Ich habe in letzter Zeit viele Sprachen verwendet. –

2

Versuchen Sie, den Konstruktor machen public:

public Entry(List<string> n, string r, string t, string d) 
+0

Sie haben auch Recht. Vielen Dank. –

+0

Und ich war die erste Antwort :( – Bohemian