2017-05-10 5 views
-1

Ich habe in einem Code die Verwendung von geschweiften Klammern gesehen, um die Werte der Variablen der betreffenden Klasse beim Erstellen einer neuen Instanz direkt zu informieren.Verwenden von geschweiften Klammern beim Erstellen einer neuen Klasseninstanz

Exemple (siehe Mitarbeiter3)

class Program 
{ 
    static void Main(string[] args) 
    { 
     //I KNOW THIS. 
     //Employee employee1 = new Employee(100, "Mike", 2000, 3); 

     //I ALSO KNOW THIS. 
     Employee employee2 = new Employee(); 
      employee2.ID = 101; 
      employee2.Name = Henry; 
      employee2.Salary = 3000; 
      employee2.Experience = 4; 

     //BUT THIS IS THE FIRST TIME I HAVE SEEN THIS. 
     Employee employee3 = new Employee() 
      { ID = 102, Name = "John", Salary = 3000, Experience = 5 }; 
    } 


class Employee 
{ 
    //Employee(iD, name, salary, experience) 
    //{ 
    // ID = iD; 
    // Name = name; 
    // Salary = salary; 
    // Experience = experience; 
    //} 

    //Employee() { } 

    public int ID { get; set; } 
    public string Name { get; set; } 
    public int Salary { get; set; } 
    public int Experience { get; set; } 
} 

Was diese Klammern bedeuten, was sind sie genannt, können sie sonst nützlich sein ...

+3

Rufen Sie die geschweiften Klammer? Es heißt ein Objektinitialisierer. Sie können auch zum Initialisieren von Sammlungen verwendet werden: 'var x = new Liste {0, 2, 4};' –

+5

Diese Syntax wird als "Objektinitialisierersyntax" bezeichnet. –

+2

Es ist eine andere Syntax für genau die gleichen Aktionen. Mach dir keine Sorgen darüber. 'A a = neu A(); a.field = 1; 'kann geschrieben werden als' A a = neu A() {field = 1} ' Sie können darüber [hier] lesen (https://docs.microsoft.com/en-us/dotnet/articles/csharp/programming-guide/classes-and-structs/object-and-collection-initializers) –

Antwort

Verwandte Themen