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

金融交易网站建设金融 网站建设

金融交易网站建设,金融 网站建设,淮南服装网站建设地址,临沂门户网站制作C# 13 即 .NET 9 按照计划会在2024年11月发布#xff0c;目前一些新特性已经定型#xff0c;让我们来预览一个比较大型比较重要的新特性。 正文 扩展类型 Extension types 在5月份的微软 Build 大会中的 What’s new in C# 13 会议上#xff0c;两位大佬花了很长的篇幅来…C# 13 即 .NET 9 按照计划会在2024年11月发布目前一些新特性已经定型让我们来预览一个比较大型比较重要的新特性。 正文 扩展类型 Extension types 在5月份的微软 Build 大会中的 What’s new in C# 13 会议上两位大佬花了很长的篇幅来演示这个特性。 这个特性一直是大家很关心的在 github 的 issue 上讨论的也是如火如荼当然微软也隔了好多年。 首先让我们来回顾一下 C# 中的扩展方法 using System;var zhangsan  new Person(); Console.WriteLine(zhangsan.GetAge());public class Person {public string Name { get; set; } public DateTime Birthday { get; set; } }public static class PersonExtension {public static int GetAge(this Person person)  DateTime.Now.Year - person.Birthday.Year; } 以上代码演示了一个扩展方法声明方式及使用方法。 我们在不侵入 Person 类的基础上为 Person 类扩展了一个 GetAge() 的方法虽然已经可以很方便的扩展出一些方法来但是问题也是显而易见的例如必须声明在静态类中、语法看起来很怪异、只能扩展方法而不能扩展属性等等。 于是在即将到来的 C# 13 中我们可以这样 var zhangsan  new Person(); Console.WriteLine(zhangsan.GetAge());public implicit extension PersonExtension for Person {public int GetAge()  DateTime.Now.Year - this.Birthday.Year; } 怎么样语义是不是清晰了很多 进一步的年龄应该是一个属性而不应该是一个方法 var zhangsan  new Person(); Console.WriteLine(zhangsan.Age);public implicit extension PersonExtension for Person {public int Age  DateTime.Now.Year - this.Birthday.Year; } 困扰多年的如何扩展属性的问题终于得到了解决。 implicit extension / explicit extension 在上一个例子不知道大家有没有注意到关键字是 implicit extension那么很显然会有一个对应的 explicit extension下面让我们来看看花活 var zhangsan  new Person(); if(zhangsan.IsStudent) {Student zhangsanAsStudent  zhangsan;Console.WriteLine(zhangsanAsStudent.Grade); }public implicit extension PersonExtension for Person {public int Age  DateTime.Now.Year - this.Birthday.Year;public bool IsStudent  this.Age  18; }public explicit extension Student for Person {public string Grade  五年级; } 可以看到这里有一个显示扩展显式扩展可以创建原始类的投影或子类。当你要基于扩展类型添加条件方法或属性时这可能很有用。 当然扩展静态方法也是没问题的 var zhangsan  Person.Create();public implicit extension PersonExtension for Person {public static Person Create()  new Person(); } 当然系统类型也是支持的 Console.WriteLine(World.SayHello());public implicit extension StringExtension for string {public string SayHello()  Hello  this; } 总结 我想这个特性是很大的一个改变或许可以改进 C# 代码的组织方式有望提高代码的可读性、可维护性和表现力。 通过允许开发人员在不修改原始代码的情况下向现有类添加功能它可以促进代码重用并减少修改原始类的需要。 另外据了解这个特性以及相关特性例如扩展接口等等并不会在 C# 13 (.NET 9) 中完整的放出来而是会在后续版本中逐渐解锁。
http://www.w-s-a.com/news/20013/

相关文章:

  • 长沙网站建设联系电话怎么做表格
  • 网站怎么做域名实名认证龙华网站 建设信科网络
  • 企业网站规划方案网站是做排行榜
  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站
  • 鸣蝉智能建站标准物质网站建设模板
  • 电商网站建设技术员的工作职责商业网站制作价格
  • 网站html模板免费下载公司的网站建设费用入什么科目
  • 高中生做网站网页网页制作教程零基础学会
  • 做金融网站有哪些要求WordPress站内搜索代码
  • 济南网站怎么做seowordpress注册发邮件
  • 珠海网站设计平台东莞市手机网站建设平台
  • 网站开发文档合同怎么在wordpress导航条下方加入文字广告链接
  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件
  • 怎么样用ppt做网站红番茄 网站点评
  • 建设银行河北分行招聘网站哪里能找到网站
  • 兰州营销型网站网站建设收费标准
  • 网站首页动图怎么做自己做网站很难