三分之十的菜鸟C#学习小记(四) C#之属性

属性:get和set访问器

1.属性的定义
通常属性名的命名使用的是 Pascal 命名法,单词的首字母大写,如果是由多个单词构成,每个单词的首字母大写。属性定义如下:

public    数据类型    属性名
{
    get
    {
        获取属性的语句块;
        return;
    }
    set
    {
        设置属性得到语句块;
    }
}

举个例子:

class Student
   {
      private string code = "N.A";

      // 声明类型为 string 的 Code 属性
      public string Code
      {
         get
         {
            return code;
         }
         set
         {	if String.IsNullOrEmpty(value) {
            	code = "NULL";}
           	else{
           		code = value;
           	}
         }
      }
 	}

通过上面的实例可以看出,在定义字段属性时,属性的作用就是为字段提供 get、set 访问器,由于操作都比较类似,在 C# 语言中可以将属性的定义简化成如下写法。

public string Code{get; set;}
public string Code{get;}="Like";		//只读
public string Code{private get; set;}	//只允许当前类访问

VS快速生成属性
在这里插入图片描述

2.为什么要使用属性?
如果上述public string Code{get; set;}直接写成public string code呢?不一样可以实现访问吗?

区别:`public string code``,系统在分配内存空间时对code属性直接分配内存,之后对code属性的操作也是直接操作内存中code属性所在的这个块;

public string Code{get; set;},系统会先分配一个叫code的private私有的内存空间(此处的code对于类的内部使用,Code对于外部操作使用,要有所区分),之后的读与写的操作都是通过Code这个public的类似于指针的东西来关联code进行,以此达到封装的目的,并且通过get和set关键字也可以控制可读还是可写。

属性在调用者看来就像一个普通的变量,但作为类的设计者,你可以利用属性来隐藏你类中的一些字段,使外界只能通过属性来访问你的字段,你可以通过属性来限制外界对你的字段的存取,就利用get、set。

3.属性的调用

class ExampleDemo
    {
      public static void Main()
      {
         Student s = new Student();
         s.Code = "001";
       }
   }

直接把Code当成类的成员变量一样调用

4.抽象属性
抽象类可拥有抽象属性,这些属性应在派生类中被实现。

//抽象类
 public abstract class Person
   {
      public abstract string Name
      {
         get;
         set;
      }
   }
   
 //派生类
 class Student : Person
   {
      private string code = "N.A";
      
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值