C#中{get;set;}的具体使用浅谈

 

本文主要介绍了C#中{get;set;}的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着微点阅读小编来一起学习学习吧

在C#程序中经常会看到set,get的配套使用,很多人不知道它的用途。我就在这向大家讲讲,也加深一下自己的印象。

1

2

3

4

5

6

7

8

9

10

//这里有两个类 

public class person1

{

    public string name;

}

  

public class person2

{

    public string Name{set;get;}

}

我们可以看到,第一个类中的name是没有封装的,第二给则用到{get;set;}  关键字进行封装。其实含义也是很简单,get与set分别对应的是可读与可写。其实以前的代码是这样写的,只是现在的.net框架可以忽略成上面那样

1

2

3

4

5

6

7

private string name;

  

public string Name

{

    get { return name; }

    set { name = value; }

}

区别:当实例化第一个“person1”这个类时,系统在分配内存空间时对name属性直接分配内存,之后对name属性的操作也是直接操作内存中name属性所在的这个块;而当实例化第二个人“person2”类型时,系统会先分配一个叫name的private私有的内存空间,读与写的操作都是通过Name这个public的类似于指针的东西来关联name进行,以此达到封装的目的,并且通过get和set关键字也可以控制可读还是可写。

简单的说就是控制字段的读写权限。

再举例说明下:

假设类是一银行,既能存钱也能取钱

1

2

3

4

5

6

7

8

9

10

11

12

    Private Money;

    Private class bank()

    {

      get

      {

         return Money;

      }

      Set

      {

         Money=value;

      }

    }

Money 就像银行里的自动取款机,你看不见里面的Money,但你能用set(存钱),用get(取钱)。Money是一个私有字段,是分装在类中的,类以外的程序不能直接访问的。C#中get、set用法中,类的set和get成员是外部程序访问类内部属性的唯一方法,就像你去银行取钱,你不能直接从银行的保险柜里拿钱,而是银行营业人员把钱取出来给你的。

属性在调用者看来就像一个普通的变量,但作为类的设计者,你可以利用属性来隐藏你类中的一些字段,使外界只能通过属性来访问你的字段,你可以通过属性来限制外界对你的字段的存取,就利用get、set。如果想让用户随意存取你的字段,那么就实现get、set;如果只想让用户读取字段,就只实现get;若只想让用户写字段就只实现set。同时还可以在set和get中对用户传递的值进行一些验证工作,以确保你的字段将含有正确的值。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    Private int a;

    Public int index

    {

      get

      {

        return a;

      }

      set

      {

         If (value>0)

           a=value;

         else

           a=0;

      }

    }

可看出,get、set用法中一则是隐藏组件或类内部的真是成员;

二是用来建立约束的,比如,实现“有我没你”这种约束;

三是用来响应属性变化事件,当属性变化是做某事,只要写在set方法里就行。

当你想读出或写入属性的值时,存取标志限定了被实现的语句。用于读出属性的值的存取标志记为关键字get,而要修改属性的值的读写符标志记为set。

到此这篇关于C#中{get;set;}的具体使用的文章就介绍到这了,希望可以帮到你!

转自:微点阅读   https://www.weidianyuedu.com

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值