位置: 编程技术 - 正文

对 C# 未来的期望(c#未来展望)

编辑:rootadmin
接触 C# 一年,总体上是一个非常完善的语言,但是某些细节特征还是不够完美。这里记下我现在对它将来的一些期望。更强大的泛型约束与 C&#;&#; 的模板相&#;,C# 的泛型使得编写适用于多种类型的代码更加简洁。如果没有泛型,我们可能需要使用 object 并执行类型转换,或者针对每一种类型写大量雷同的代码。在泛型类型约束上,C# 一如既往的严&#;,但是由于泛型约束还不完善,有时不得不写一些重复的代码。比如下面这个例子:public static T MaxT(T a, T b) where T is int or long or float or double{return a = b ? a : b;}可惜现在的 C# 还没有这个功能......System.Math 的做法就是为各种类型分别写一个 Max 方法。关于C#的泛型约束参考这里:类型参数的约束,模板与泛型的区别:C&#;&#; 模板和 C# 泛型之间的区别。命名空间范围的访问修饰C# 提供了 internal 访问修饰符来保护程序集内部类型或成员,但是实际开发中我们经常也需要在一个程序集中划分子模块。为了更清楚的把同一个子模块内部的类之间公开的内容与不同的子模块之间公开的内容区别开,希望未来 C# 可以提供命名空间范围的访问修饰。比如下面这个例子:namespace Moudle{public class Common { ... }private class Secret { ... }}添加 private 类型的访问修饰,这样 Common可以访问 Secret,Secret 类型在 Moudle命名空间可见,对 Moudle 之外是不可见的。注意,现在的 C# 不允许命名空间内的元素声明为 private 或 protected。C&#;&#; 中的友元也可以解决这个问题,但是我猜你们都不喜欢 friend。。。使用内部类可以一定程度上解决这个问题,但是太不自由了。在 Unity 开发中这个问题更严重,因为脚本组件必须写在单独的文件、且不可以为内部类。可定义变量的引用C# 支持在方法参数上使用 ref 和 out 关键字来引用实参,这对结构类型非常重要,否则你很难通过方法来修改结构本身的&#;。但是可能是为了避免 C# 太过复杂,所以这个特性仅限于方法参数。这样我们经常遇到看起来很不正常的问题。比如 foreach 遍历结构类型集合无法修改&#;,用下标遍历结构数组只能使用数组名&#;。为了避免太复杂,可以限制仅可以定义一级引用。foreach(ref Vector3 position in positions){position.x = 0;}更自由的扩展方法现在的扩展方法必须写在单独的静态类里,而且必须使用了命名空间才可以使用。这就是一个没有意义的限制。我们按功能模块来划分代码,发现某一个方法使用扩展的形式来编写更优雅,于是不得不把这个方法拿出去,放到某个名字没有意义的静态类里。这太无聊了!另外,扩展方法不支持以属性的形式扩展、不支持以引用的形式扩展,都是需要改进的。class MyClass{public static DoSomething(this OtherClass obj, ...) { ... }public static getSetSomething(this OtherClass obj){ get {...} set{...} }public static void ModifyValue(this ref ValueType value) { ... }}更简洁的命名空间使用规则看这个例子:using A.B;class MyClass { A.B.C.OtherClass x; }在不使用任何命名空间时,需要如上面那样写一长串代码;using A 的情况下,你还是得写这么一串。如果命名空间层次太多时,你要么using到类所在的命名空间,要么从头写起前缀。这太不智能了。希望可以正确的识别子命名空间。using A.B;class MyClass { C.OtherClass x; }声明:此篇文档时来自于【狗刨学习网】社区-unity极致学院,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。

推荐整理分享对 C# 未来的期望(c#未来展望),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:c#未来展望,c#的发展方向薪资,c#发展方向,c#的前途,c#的发展方向薪资,c#发展方向,c#未来展望,c#未来展望,内容如对您有帮助,希望把文章链接给更多的朋友!

对 C# 未来的期望(c#未来展望)

- Unity3D研究院之两种方式播放游戏视频(二十五) 雨松MOMO Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是

Unity3d 双摇杆 easyTouch 首先创建一个摇杆的实例我这里修改名称为Move复制一下命名为Rotate勾选动态显示,这样用户点击后才会显示摇杆(现在摇杆游戏都是动态显示)设置摇

Unity3d开发之 多渠道批量打包(四) 原文地址:

标签: c#未来展望

本文链接地址:https://www.jiuchutong.com/biancheng/384573.html 转载请保留说明!

上一篇:Unity基于ZXing.Net实现二维码的制作(unity基于什么语言)

下一篇:2012 05-26 Unity3D研究院之两种方式播放游戏视频(二十五) 雨松MOMO

  • 账面价值与计税基础之间没有差别只是计价的两种名称
  • 收到汇算清缴退款会计分录
  • 研发费用加计扣除是什么意思啊
  • 个人住房交不交个税
  • 包工包料的税率2023
  • 个税年度累计计算器
  • 一般纳税人的税务筹划
  • 支付买方佣金
  • 无形资产报废会计科目
  • 产品成本核算需要经过哪些程序
  • 税控盘会计处理
  • 进项税额抵减欠税后附加税可以抵减吗
  • 预付卡销售和充值属于什么费用
  • 个体户一般纳税人和小规模的区别
  • 现代服务业要满足什么条件才转一般纳税人
  • 一般纳税人开培训发票税率是多少
  • 建筑业外出经营管理办法
  • 公司注销后银行账户怎么注销
  • 未收到房租是否缴纳增值税
  • 材料采购差异的影响因素
  • 购买展示柜怎么做会计分录
  • linux获取网络接口及ip命令
  • PHP:xml_parser_create_ns()的用法_XML解析器函数
  • php编写
  • 微软笔记本
  • 其他应付款转营业外收入需要交增值税吗
  • 增值税发票选择确认平台注意事项
  • 职工教育经费会计准则最新规定
  • 电力系统常用的接线有哪几种
  • g++.exe error
  • php copy函数
  • 加工取得的存货和委托加工的区别
  • vue3微前端
  • 食堂维修费用计什么科目
  • web渗透违法吗
  • 支付个人赔偿款入账
  • overflow常见释义
  • Bilateral Filters(双边滤波算法)的超简单原理,学不会你打我。
  • 你应该知道的数学常识纪录片
  • Laravel4中的Validator验证扩展用法详解
  • 存货采购成本有余额吗
  • 每个月计提折旧的分录
  • 增值税一般纳税人可以开普票吗
  • css代码基础
  • mysql事务类型
  • 费用票必须是公司发票吗
  • mysql错误提示
  • 哪些情况下可以使用食品添加剂
  • 出差补助是否计入工资总额
  • 什么时候不能计入开办费
  • 同一控制下企业合并
  • 已抵扣认证的发票开红字发票需要将原票退回吗
  • 应付票据转应付账款会计分录
  • 纳税人未抄报税怎么办
  • 收到货款会计录入
  • 政府会计工资代扣工会会费
  • 长期股权投资成本法转权益法例题
  • 汇算清缴晚了几天
  • 代扣代缴个人所得税分录
  • 选择简易计税方法
  • 库存商品可以用多栏式吗
  • 研发费用核查要点
  • 车辆转让怎么开票
  • 硬盘安装在哪里
  • 在幻灯片母版中
  • 直接玩鬼泣4
  • WFXMOD32.EXE - WFXMOD32是什么进程
  • win10预览版和正式版
  • Win7计算机管理里面没有本地用户和组
  • redhat无法启动
  • Linux系统中配置网络
  • linux用户文件权限
  • 深入理解ts
  • Http TCP 协议
  • linux禁止所有用户登录
  • 阿里大于短信验证接口
  • android开发主要用什么语言
  • 重庆个人所得税是多少
  • 2018建筑材料考试试题及答案河南卷
  • 建设工程造价咨询合同需要交印花税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设