2017-04-20 4 views
0

Ich versuche, ein Array von Objekten aus Person Objekten in Employee Klasse zu erstellen, aber ich erhalte diese Fehler:Ausgabe auf Array von Objekt in einer anderen Klasse erstellen

CS0270 Array Größe nicht in einer Variablendeklaration angegeben werden kann, (Versuchen Sie Initialisierung mit einem 'neuen' Ausdruck)

CS1519 ungültiges Token '.' in Klasse, Struktur oder Interface-Memberdeklaration CS1519

Ungültige Zeichen '=' in Klasse, Struktur oder Interface-Memberdeklaration

void Main() 
    { 

    } 

    public class Person{ 
     public string Name{ get; set;} 
    } 
    public class Employee{ 
     Person[] persons = new Person[3]; 
     persons[0].Name = "Ali"; 
    } 

Können Sie bitte lassen Sie mich wissen, was ich tue, falsch ?

+3

'Personen [0] .Name =„Ali“,' muss innerhalb einer Methode sein – Jonesopolis

+0

Dank Jonesopolis aber kann ich fragen, warum? – Behseini

+0

@Behseini, so wurde C# entwickelt. Im Gegensatz zu, sagen wir PHP, müssen Sie Ihren Code auf bestimmte Weise organisieren. – Nino

Antwort

3

Den Wert persons zuweisen Das erste Element des Arrays kann nicht auf diese Weise erstellt werden. Sie müssen es innerhalb der Methode oder des Konstruktors tun. Etwas wie folgt aus:

public class Employee 
{ 
    Person[] persons = new Person[3]; 

    //through constructor 
    public Employee() 
    { 
     persons[0].Name = "Ali"; 
    } 

    //method that takes index and name 
    public void AddPerson(int index, string name) 
    { 
     persons[index].Name = name; 
    } 
} 
+0

+1, aber die Funktion hat nichts zu verhindern, dass der Benutzer einen Index eingibt, der höher ist als das, was das Array unterstützen kann. –

+0

Vielen Dank Nino, aber kannst du mir bitte auch sagen, was ist die Logik dahinter? – Behseini

+1

@JohnDom das ist wahr, aber das ist nur ein Beispiel, das grundlegende Verwendung zeigt. – Nino

Verwandte Themen