>  기사  >  백엔드 개발  >  C# 학습 일지 27----속성

C# 학습 일지 27----속성

黄舟
黄舟원래의
2017-01-21 15:36:561531검색

속성은 클래스, 구조체 및 인터페이스의 멤버로 명명될 수 있습니다. 이는 비공개 필드의 값을 읽고 쓰거나 계산할 수 있는 유연한 메커니즘을 제공합니다. 실제로 비공개 필드의 값을 읽고, 쓰고, 조작할 수 있도록 "접속자"의 특수 메서드를 정의합니다.

좀 더 생생하게 표현해 보겠습니다. 예를 들어 외부 세계에서 개인 멤버 개인 문자열 이름으로 개인 클래스를 정의하고, 개인 객체 per를 인스턴스화하고, per의 이름을 요청하고, 이를 출력합니다. 이름. per.name에 값을 할당한 다음 출력하시겠습니까? ? 이전 연구를 통해 우리는 클래스의 private 수정 변수에 외부 객체가 접근할 수 없다는 것을 알았습니다(per.name="HC666"^_^로는 직접 접근할 수 없습니다). getname 메소드는 쓰기 및 출력을 위한 매개변수로 "HC666"을 사용하는데, 이때 "attributes"가 나타나야 합니다. 이름.

"접속자"

속성의 접근자에는 속성을 가져오거나 설정하는 실행 가능한 명령문이 포함되어 있습니다. 접근자의 선언에는 get 접근자(읽기 전용을 나타냄) 또는 집합이 포함될 수 있습니다. 접근자(쓰기 전용을 의미) 또는 둘 다(읽기와 쓰기를 모두 의미). (위 예에서는 get 접근자를 사용하여 이름을 출력하고 set 접근자를 사용하여 작성합니다.)

속성 정의:

위 예에서는 다음을 정의할 수 있습니다. name 읽기-쓰기 속성 Name에는 외부 개체에서 액세스할 수 있는 공개 수정자

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

를 사용합니다. 그런 다음 읽기 전용 속성을 정의합니다. 예를 들어 age는 고정된 읽기 전용

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

속성 인스턴스:

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); //读属性  
        }  
    }  
}

결과:

C# 학습 일지 27----속성

추상 속성:

앞에서 언급한 대로 , 속성은 클래스를 만들 수 있으며, 구조 및 인터페이스의 멤버는 자연스럽게 추상 클래스의 추상 속성일 수도 있습니다. 추상 메서드와 같은 추상 속성은 파생 클래스에서 구현됩니다.

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); //读属性  
        }  
    }  
}

결과는 이전 예시와 동일합니다.

위 내용은 C# 학습일기 27---속성입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.