Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Lerntagebuch 27----Eigenschaften

C#-Lerntagebuch 27----Eigenschaften

黄舟
黄舟Original
2017-01-21 15:36:561521Durchsuche

Attribute können benannte Mitglieder von Klassen, Strukturen und Schnittstellen sein. Sie bieten einen flexiblen Mechanismus zum Lesen, Schreiben oder Berechnen des Werts privater Felder. Attribute können als Mitglied des öffentlichen Felds angezeigt werden Definiert tatsächlich eine spezielle Methode des „Accessors“, sodass der Wert des privaten Felds gelesen, geschrieben oder manipuliert werden kann.

Um es anschaulicher auszudrücken: Wir definieren eine Personenklasse mit einem privaten Stringnamen für ein Mitglied in der Außenwelt, instanziieren ein Personenobjekt per, fragen nach einem Namen für per und geben diesen aus name oder weisen Sie per.name einfach einen Wert zu und geben Sie ihn dann aus? ? Nach der vorherigen Studie wissen wir, dass externe Objekte nicht auf die privaten geänderten Variablen in der Klasse zugreifen können (dies ist nicht direkt mit per.name="HC666"^_^ möglich). Daher können wir nur einen öffentlichen geänderten Setnamen in definieren Die Klasse „getname“ verwendet „HC666“ als Parameter zum Schreiben und Ausgeben. Zu diesem Zeitpunkt sollten „Attribute“ angezeigt werden, indem wir ein Lese-/Schreibattribut definieren Name.

"Accessor"

Der Accessor einer Eigenschaft enthält ausführbare Anweisungen zum Abrufen oder Festlegen der Eigenschaft. Die Deklaration des Accessors kann einen Get-Accessor (der schreibgeschützt angibt) oder einen Satz enthalten Accessor (d. h. nur schreibend) oder beides (d. h. sowohl Lesen als auch Schreiben). (Im obigen Beispiel verwenden wir den Get-Accessor zum Ausgeben des Namens und den Set-Accessor zum Schreiben)

Attribute definieren:

Im obigen Beispiel können wir definieren Verwenden Sie für den Namen ein schreibgeschütztes Attribut

private string name;     //声明name变量
         public string Name     //声明变量的属性,读写
            {  
               get { return name;  }   //定义读访问器,其实就是一个方法
                           set { name = value;  }  //定义写访问器,set 方法有一个隐含的参数value
             }

, auf das externe Objekte zugreifen können. Beispielsweise ist unser Alter schreibgeschützt

 private uint age=10;  //声明变量 age
        private string Age     //声明变量的属性,只读
            {  
               get { return age;  }   //读访问器
             }

Instanz des Attributs:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Test1  
{  
    class person  
    {  //定义变量name,并且为name定义一个读写属性  
        private string name;  
        //定义属性  
        public string Name  
        {//访问器  
            get { return name; }  
            set { name = value; } //set自带一个value参数  
        }  
        //定义变量age,并且为age定义一个只读属性  
        private uint age=10;  
        public uint Age  
        {  
            get { return age; }  
        }  
    }  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            person per = new person();  
            per.Name = "HC666";  //执行写入属性  
            Console.WriteLine("我的名字叫:{0}\t今年 {1} 岁了",per.Name,per.Age); //读属性  
        }  
    }  
}

Ergebnis:

C#-Lerntagebuch 27----Eigenschaften

Abstraktes Attribut:

Wie bereits erwähnt, können Attribute Mitglieder von Klassen, Strukturen, Schnittstellen und natürlich auch abstrakte Attribute abstrakter Klassen sein. Abstrakte Attribute werden wie abstrakte Methoden in abgeleiteten Klassen implementiert.

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Test1  
{//定义一个person抽象类  
    abstract class person  
    {//定义抽象属性  
        public abstract string Name  
        {//读写  
            get;  
            set;  
        }  
        public abstract uint Age  
        {//只读  
            get;  
        }  
  
    }  
    //定义派生类  
    class student : person  
    {  
        private string name;  
        private uint age=10;  
        //实现抽象属性  
        public override string Name  
        {  
            get  
            {  
                return name ;  
            }  
            set  
            {  
                name=value;  
            }  
        }  
        public override uint Age  
        {  
            get { return age; }  
        }  
    }  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            student stu = new student();  
            stu.Name = "HC666";  //执行写入属性  
            Console.WriteLine("我的名字叫:{0}\t今年 {1} 岁了",stu.Name,stu.Age); //读属性  
        }  
    }  
}

Das Ergebnis ist das gleiche wie im vorherigen Beispiel.

Das Obige ist der Inhalt von C# Learning Diary 27----Attribute. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn