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

 更新时间:2023年02月06日 15:10:03   作者:m0_60150025  
本文主要介绍了C#中{get;set;}的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

//这里有两个类  
public class person1
{
    public string name;
}
 
public class person2
{
    public string Name{set;get;}
}

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

private string name;
 
public string Name
{
    get { return name; }
    set { name = value; }
}

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

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

再举例说明下:

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

    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中对用户传递的值进行一些验证工作,以确保你的字段将含有正确的值。

    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;}的具体使用的文章就介绍到这了,更多相关C# {get;set;}内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Unity 数据存储和读取的方法汇总

    Unity 数据存储和读取的方法汇总

    这篇文章主要介绍了Unity 数据存储和读取的方法,本文通过四种方法在 Unity 中实现数据存储和读取方法的案例内容,结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-10-10
  • C#使用System.Buffer以字节数组Byte[]操作基元类型数据

    C#使用System.Buffer以字节数组Byte[]操作基元类型数据

    这篇文章介绍了C#使用System.Buffer以字节数组Byte[]操作基元类型数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 使用异步方式调用同步方法(实例详解)

    使用异步方式调用同步方法(实例详解)

    .NET Framework 允许您异步调用任何方法。为此,应定义与您要调用的方法具有相同签名的委托;公共语言运行时会自动使用适当的签名为该委托定义BeginInvoke和EndInvoke方法
    2013-10-10
  • C#中的应用程序接口介绍及实现,密封类与密封方法

    C#中的应用程序接口介绍及实现,密封类与密封方法

    今天小编就为大家分享一篇关于C#中的应用程序接口介绍及实现,密封类与密封方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • C#创建缩略图操作类实例

    C#创建缩略图操作类实例

    这篇文章主要介绍了C#创建缩略图操作类,实例分析了C#创建缩略图的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#数据结构与算法揭秘一

    C#数据结构与算法揭秘一

    本文一介绍了数据结构的基本概念 而介绍了算法的基本概念,并且重点讨论了算法时间复杂度,并且用程序予以证明
    2012-11-11
  • 字符串和十六进制之间的转换方法实例

    字符串和十六进制之间的转换方法实例

    这篇文章介绍了字符串和十六进制之间的转换方法实例,有需要的朋友可以参考一下
    2013-11-11
  • C#连接Oracle数据库的实例方法

    C#连接Oracle数据库的实例方法

    C#连接Oracle数据库的实例方法,需要的朋友可以参考一下
    2013-04-04
  • 详解c# 并行计算

    详解c# 并行计算

    本文主要介绍了并行计算的简单使用,并行循环的中断和跳出、并行循环中为数组/集合添加项、返回集合运算结果/含有局部变量的并行循环、、PLinq(Linq的并行计算)等相关内容。
    2020-12-12
  • C#实现简易的计算器

    C#实现简易的计算器

    这篇文章主要为大家详细介绍了C#实现简易的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04

最新评论