当前位置: 首页 > news >正文

网站建设公司优势衡水网站制

网站建设公司优势,衡水网站制,赣州市人才网,生产公司简介模板翻译自 John Demetriou 2018年4月8日 的文章 《C# 7.2 – Let’s Talk About Readonly Structs》[1]在本文中#xff0c;我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。任一结构体都可以有公共属性、私有属性访问器等等。我们从以下结构体示例来开始讨论#x… 翻译自 John Demetriou 2018年4月8日 的文章 《C# 7.2 – Let’s Talk About Readonly Structs》[1]在本文中我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct。任一结构体都可以有公共属性、私有属性访问器等等。我们从以下结构体示例来开始讨论public struct Person {public string Name { get; set; }public string Surname { get; set; }public int Age { get; set; }public Person(string name, string surname, int age){Name name;Surname surname;Age age;}public void Replace(Person other){this other;} } 如您所见所有属性都可以公开访问和修改。更糟糕的是我们甚至可以访问 this 通过调用 Replace 方法将其更改为同一结构体类型的另一个实例。这就是 readonly 关键字出现的原因。如果仅在结构体的定义中添加它如下所示public readonly struct Person {public string Name { get; set; }public string Surname { get; set; }public int Age { get; set; }public Person(string name, string surname, int age){Name name;Surname surname;Age age;}public void Replace(Person other){this other;} } 编译器会显示如下面截图中的错误提示为什么会这样这是因为当我们向结构体定义添加 readonly 关键字其实是把每个属性都设置为只读的了包括 this 的值。要让代码通过编译的唯一方法是把所有内容都设置为只读的也就是说我们的结构体应该像这样public readonly struct Person {public string Name { get; }public string Surname { get; }public int Age { get; }public Person(string name, string surname, int age){Name name;Surname surname;Age age;} } 因此添加 readonly 可以消除结构体实例内部或外部发生意外赋值或修改值的可能性。不过需要注意的一件事是如果您经常使用无参构造函数并给属性赋值像这样Person s new Person(); //错误 s.Age 15; s.Name asd; s.Surname qwe; 或者像这样//错误 Person s new Person {Age 15,Name asd,Surname qwe }; 虽然此结构体的默认无参构造函数仍然可以调用但给任何属性赋值都将引发编译错误因为属性是只读的。实际上对此结构体的无参构造函数的调用会将其所有属性设置为它们的默认值而且在结构体实例的整个生命周期中永远不会被修改。正确的初始化方法是调用参数化构造函数Person s new Person(asd, qwe, 15); 总之这将有助于更容易地表明您的意图因为您可以从一开始就定义这个结构体是不可变和不可修改的。译者总结使用 readonly 修饰符声明 struct 的目的就是为了明确地声明一个不可变的值类型。readonly 结构体的所有数据成员都必须是只读的所有字段声明都必须具有 readonly 修饰符所有属性包括自动实现的属性都必须是只读的这就保证了 readonly 结构体的成员不会修改该结构体的状态。在 C# 8.0 及更高版本中除构造函数外的其他实例成员都是隐式 readonly 的。相关链接https://www.devsanon.com/c/c-7-2-lets-talk-about-readonly-structs/ C# 7.2 – Let’s Talk About Readonly Structs ↩︎https://mp.weixin.qq.com/s/wVikRMfc4BbrB6WbDy1gXw C# 中 Struct 和 Class 的区别总结 ↩︎作者 John Demetriou  译者 技术译民  出品 技术译站https://ITTranslator.cn/END
http://www.zqtcl.cn/news/45550/

相关文章:

  • 怎么做跳转网站wordpress $ order点击数
  • 网站设计流程软件成都免费建站
  • 合肥营销型网站建设开发无锡制作网站公司哪家好
  • 北京城建亚泰建设集团有限公司网站高校门户网站建设建议
  • 在线推广网站的方法wordpress优化0sql
  • 电脑网站打不开怎么解决网站开发和程序开发
  • 关于微网站策划ppt怎么做网站设计包括哪些步骤
  • 做网站为什么要买服务器南宁seo做法价格
  • 专业网站建设公司郑州wordpress spotless
  • 网站建设工作自策划实施以来麻六记网络营销方式
  • 英文网站建设公司 杭州品牌建设更加
  • 优秀网站大全如何找客户资源
  • 电脑网站拒绝连接怎么解决关于网站建设的故事
  • 如何设置自己的网站免费做店招的网站
  • 网站设计 书籍系统运维
  • 网站 手机版网站开发合同如何同步wordpress
  • 泉州网站推广排名长春制作公司网站
  • 网站建设的数据库连接做网站 郑州公司哪家好
  • 高密专业网站建设价格58同城做网站多少钱
  • 查找公司注册信息的网站网络运维工资是多少
  • 建站平台外贸wordpress博客导出
  • 导购网站怎么建立网站建设需要服务器么
  • 合肥简川科技网站建设公司 概况wordpress忘記密碼
  • 中国品牌网站设计做的网站不能放视频播放器
  • 制作网站免费电商网站建设功能
  • 四川网站开发图片优化
  • 外卖网站建设文档深圳门户网站建设特点
  • 做网站 中介网络科技公司起名大全最新
  • 昌平网站建设浩森宇特中国城乡建设部网站证书查询
  • 建10个网站大连做网站seo