加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB和C#的自动实现属性

发布时间:2020-12-16 22:52:13 所属栏目:大数据 来源:网络整理
导读:C#在3.0版本中添加了自动实现属性,但是当时Visual Basic还没有与之匹配的特性。即将 发布 的.NET 4.0版本中,VB在该领域迎头赶上,但却有所不同。C#中,自动实现属性可以这样编写,如下所示: public string FirstName {get; set;} 复制代码 Visual Basic则
C#在3.0版本中添加了自动实现属性,但是当时Visual Basic还没有与之匹配的特性。即将发布的.NET 4.0版本中,VB在该领域迎头赶上,但却有所不同。C#中,自动实现属性可以这样编写,如下所示:
  1. public string FirstName {get; set;}
复制代码
Visual Basic则需要关键字Property,这表示它不需要get/set来对字段进行区分。但是, VB中的自动实现属性对字段只有一个标记。
  1. Public Property FirstName As String
复制代码
对于VB和C#,该属性都自动支持一个私有字段。在C#中,这个成员有一个自动生成的名称,例如:“<FirstName>k__BackingField”。不用说,这个字段不能用一般的C#语法进行访问。Visual Basic则缺乏这种创新性,它只不过在该属性名前添加了一个下划线。所以,如果属性名为“FirstName”,那么对应的私有字段名为“_FirstName”。

直接访问该支持字段让很多事情变得都有可能。逻辑上来说,开发人员可以把该属性标志为ReadOnly并在构造函数中设置它的值。然而,那并不可选。

尽管它有一定的局限,但实际上C#的灵活性更好。你可以标志set为private或protected,和访问支持字段一样有效。如下所示:
  1. public string FirstName {get; private set;}
复制代码
两种 语言的局限在于它们仍没有任何针对不可变对象的 工具。如果想让对象的属性和字段都为只读并可在构造函数中进行设置,那么我们仍然需要像在.NET 1.0那样编写代码。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读