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

Propriété (Property) C#

Propriété (Property) Est un membre nommé (named) de la classe (class), de la structure (structure) et de l'interface (interface). Les variables membres ou les méthodes dans une classe ou une structure sont appelées Domaine (Field). Les propriétés (Property) sont une extension des domaines (Field) et peuvent être accédées avec la même syntaxe. Elles utilisent Accesseurs (accessors) Pour rendre les valeurs des domaines privés lisibles et modifiables.

Les propriétés (Property) ne déterminent pas l'emplacement de stockage. Au lieu de cela, elles ont des valeurs qui peuvent être lues et écrites ou calculées. Accesseurs (accessors).

Par exemple, il y a une classe nommée Student, qui possède des domaines privés nommés age, name et code. Nous ne pouvons pas accéder directement à ces domaines en dehors de la classe, mais nous pouvons avoir des propriétés pour accéder à ces domaines privés.

Accesseurs (Accessors)

Propriété (Property)访问器(accessor)包含有助于获取(读取或计算)或设置(写入)属性的可执行语句。访问器(accessor)声明可以包含一个 get 访问器、一个 set 访问器,或者同时包含二者。例如:

// 声明类型为 string 的 Code 属性
public string Code
{
   get
   {
      return code;
   }
   set
   {
      code = value;
   }
}
// 声明类型为 string 的 Name 属性
public string Name
{
   get
   {
     return name;
   }
   set
   {
     name = value;
   }
}
// 声明类型为 int 的 Age 属性
public int Age
{ 
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}

在线示例

下面的示例演示了属性(Property)的用法:

using System;
namespace w3codebox
{
   class Student
   {
      private string code = "N.A";
      private string name = "not known";
      private int age = 0;
      // 声明类型为 string 的 Code 属性
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // 声明类型为 string 的 Name 属性
      public string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // 声明类型为 int 的 Age 属性
      public int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return "Code = " + Code +" Name = " + Name + " Age = " + Age;
      }
    }
    class ExampleDemo
    {
      public static void Main()
      {
         // 创建一个新的 Student 对象
         Student s = new Student();
            
         // Définir le code, le nom et l'âge de student
         s.Code = "001";
         s.Nom = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         // Augmenter l'âge
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
       }
   }
}

Lorsque le code suivant est compilé et exécuté, il produit le résultat suivant :

Infos Étudiant: Code = 001, Nom = Zara, Age = 9
Infos Étudiant: Code = 001, Nom = Zara, Age = 10

抽象属性(Abstract Properties)

抽象类可以拥有抽象属性,这些属性应在派生类中实现。下面的程序说明了这一点:

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;
      // 声明类型为 string 的 Code 属性
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   
      // 声明类型为 string 的 Name 属性
      public override string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }
      // 声明类型为 int 的 Age 属性
      public override int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }
      public override string ToString()
      {
         return "Code = " + Code +" Name = " + Name + " Age = " + Age;
      }
   }
   class ExampleDemo
   {
      public static void Main()
      {
         // 创建一个新的 Student 对象
         Student s = new Student();
            
         // Définir le code, le nom et l'âge de student
         s.Code = "001";
         s.Nom = "Zara";
         s.Age = 9;
         Console.WriteLine("Infos Étudiant:",- {0}", s);
         // Augmenter l'âge
         s.Age += 1;
         Console.WriteLine("Infos Étudiant:",- {0}", s);
         Console.ReadKey();
       }
   }
}

Lorsque le code suivant est compilé et exécuté, il produit le résultat suivant :

Infos Étudiant: Code = 001, Nom = Zara, Age = 9
Infos Étudiant: Code = 001, Nom = Zara, Age = 10