English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Eigenschaften(Propterty)

Eigenschaften(Property) sind benannte Mitgliedschaften von Klassen(class), Strukturen(structure) und Schnittstellen(interface). Mitgliedsvariablen oder Methoden in Klassen oder Strukturen werden Felder(Field)Zugriffsmechanismen(accessors) Sowie die Werte der privaten Felder lesbar und schreibbar oder manipulierbar zu machen.

Eigenschaften(Property) bestimmen keine Speicherposition. Stattdessen haben sie lesbare und schreibbare oder berechnete Werte. Zugriffsmechanismen(accessors)

Zum Beispiel gibt es eine Klasse namens Student, die private Felder wie age, name und code hat. Wir können diese Felder nicht direkt außerhalb des Klassenumfangs ansprechen, aber wir können Eigenschaften haben, die auf diese privaten Felder zugreifen.

Zugriffsmechanismen(Accessors)

Eigenschaft(Property)_accessor_Enthält ausführbare Anweisungen, die zur Lesung (Lesen oder Berechnen) oder Schreibung (Schreiben) von Attributen verwendet werden können. Der Accessor (_accessor_) kann einen get-Accessor, einen set-Accessor oder beide enthalten. Zum Beispiel:

// Ermelden Sie das Attribut Code als string
public string Code
{
   get
   {
      return code;
   }
   set
   {
      code = value;
   }
}
// Ermelden Sie das Attribut Name als string
public string Name
{
   get
   {
     return name;
   }
   set
   {
     name = value;
   }
}
// Ermelden Sie das Attribut Age als int
public int Age
{ 
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}

Online-Beispiel

Der folgende Beispiel zeigt die Verwendung von Attributen (Properties):

using System;
namespace w3codebox
{
   class Student
   {
      private string code = "N.A";
      private string name = "not known";
      private int age = 0;
      // Ermelden Sie das Attribut Code als string
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // Ermelden Sie das Attribut Name als string
      public string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // Ermelden Sie das Attribut Age als int
      public int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      
      {
         return \ + Code +", Name = ", + Name + ", Age = ", + Age;
      }
    }
    class ExampleDemo
    {
      public static void Main()
      {
         // Erstellen Sie ein neues Student-Objekt
         Student s = new Student();
            
         // Setzen Sie das code, name und alter von student}}
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         // Alter erhöhen
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
       }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt er das folgende Ergebnis:

Studenteninformation: Code = 001, Name = Zara, Alter = 9
Studenteninformation: Code = 001, Name = Zara, Alter = 10

Abstrakte Attribute (Abstract Properties)

Abstrakte Klassen können abstrakte Attribute haben, die in den Ableitungen implementiert werden sollten. Das zeigt der folgende Programmcode:

using System;
namespace w3codebox
{
   public abstract class Person
   {
      public abstract string Name
      {
         get;
         set;
      }
      public abstract int Age
      {
         get;
         set;
      }
   }
   class Student : Person
   {
      private string code = "N.A";
      private string name = "N.A";
      private int age = 0;
      // Ermelden Sie das Attribut Code als string
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // Ermelden Sie das Attribut Name als string
      public override string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // Ermelden Sie das Attribut Age als int
      public override int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      
      {
         return \ + Code +", Name = ", + Name + ", Age = ", + Age;
      }
   }
   class ExampleDemo
   {
      public static void Main()
      {
         // Erstellen Sie ein neues Student-Objekt
         Student s = new Student();
            
         // Setzen Sie das code, name und alter von student}}
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Studenteninformation:",- {0}", s);
         // Alter erhöhen
         s.Age += 1;
         Console.WriteLine("Studenteninformation:",- {0}", s);
         Console.ReadKey();
       }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt er das folgende Ergebnis:

Studenteninformation: Code = 001, Name = Zara, Alter = 9
Studenteninformation: Code = 001, Name = Zara, Alter = 10