Atitit .c#的未来新特性计划草案
Atitit .c#的未来新特性计划草案
1. C#的未来:追踪空引用1
1.1. 2. 变量命名空间1
1.2. 10. 项目引用Native dll2
1.3. 10. 项目引用Native dll2
2. 三、设计面向 面向变量的汇编语言,高级语言出现后,从Pascal/C语言面向过程和变量,到C++以后的面向对象2
2.1. 1. 面向集合3
2.2. 2. 面向并发3
2.3. 3. 面向任务(异步3
3. 参考3
1. C#的未来:追踪空引用
olang 都体现了新一代编程语言的设计哲学。
简约的关键字,
非侵入式的面向对象设计(没有了继承)
1.1. 2. 变量命名空间
class ProductUtil{
namespace Price
{
float old;
float New;
float standard;
}
float GetPrice(){
float Price.discount; //声明折扣
//计算价格...
return Price.New;
}
}
命名空间可以在方法内,也可以在类型内。声明命空间后,可以单独声明一个变量。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
1.2. 10. 项目引用Native dll
如今要调用C/C++的程序集,必须查好参数,转化类型,再像这种方式声明:
[DllImport("User32.dll", CharSet = CharSet.Unicode)]public static extern int MessageBox(int h, string m, string c, int type);
为什么不能像引用.NET dll那样引用C/C++写的dll呢,或者像Service Reference那样,增加一个Native Reference的目录,自动生成代理类。
1.3. 10. 项目引用Native dll
如今要调用C/C++的程序集,必须查好参数,转化类型,再像这种方式声明:
[DllImport("User32.dll", CharSet = CharSet.Unicode)]public static extern int MessageBox(int h, string m, string c, int type);
为什么不能像引用.NET dll那样引用C/C++写的dll呢,或者像Service Reference那样,增加一个Native Reference的目录,自动生成代理类。
使用元组的目标是以一种轻量级的方式从一个函数中返回多个值。对元组的良好支持能够消除对out参数的使用,这种参数通常被认为是一种笨重的方案。此外,out参数无法兼容 async/await,因此在许多场景中out参数将变得毫无作用
2. 三、设计面向 面向变量的汇编语言,高级语言出现后,从Pascal/C语言面向过程和变量,到C++以后的面向对象
编程语言发展已经超过半个世纪了,先是面向变量的汇编语言,高级语言出现后,从Pascal/C语言面向过程和变量,到C++以后的面向对象。 C#和Java只是语言特性上有大幅改进,设计思想并没有飞跃。
C#作为最为先进的编程语言,反映了当前语言发展的瓶颈。要有所突破,必须要有新的设计思想,把面向粒度提高到新的层次。
个人分析后认为,未来C#或C#的后继者,会向三个方向发展:
2.1. 1. 面向集合
未来编程语言遇到的业务逻辑将更复杂,对集合处理是业务逻辑的核心内容。LINQ使C#走在业界的前列,然而还有许多问题。
由于历史原因,集合类型太多太乱。支持泛型是必须,我们需要根据可变性、排序性、Hash特性、并发要求等,使用一致的高性能集合类型。这些集合类能够灵活转化,智能地处理扩容、复制等底层操作,且没有LINQ那样无法跨程序域传递的限制。这需要框架和CLR双重支持。
2.2. 2. 面向并发
这个是很自然的方向,除非出现光、生物、量子计算技术的飞跃,不然半导体电路处理器单核极限愈来愈难突破,多核趋势愈演愈烈。未来的编程语言,并发支持必须融入其底层。
还是拿Node.js来说,已经初具此特性,其对IO的访问全部非阻塞的,是从底层支持的异步操作。
对于C#来说,就不只是框架上修修补补,而是CLR的全面支持。async和await出现是个很好的苗头,期待看到更多这样的发展。
2.3. 3. 面向任务(异步
Node.js它通过事件轮询(event loop)来实现并行操作,这只能处理最简单地多任务同步。要实现真正的并发语言,并满足日益复杂的业务逻辑处理,必须对并发的单元-任务进行有力的支持。
.NET对任务有了System.Threading.Tasks下一系列类的支持,但这只是开始。我们需要动态地创建、分解、修改、取消任务,需要方便地获取和控制任务的状态,管理超时和资源,统计任务效率,处理异常。
3. 参考
论C#未来发展 - 小城故事 - 博客园.htm
C#的未来:元组及匿名结构体-IT168 技术开发专区.htm
C#的未来:扩展属性及更多 - 推酷.htm
Atitit .c#的未来新特性计划草案相关推荐
- Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39
Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39 V8 重构iocutilV4,use def iocFact...jettyUtil V ...
- Atitit.android jsbridge v1新特性
Atitit.android jsbridge v1新特性 1. Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的.只是参数url的写法不一样而已1 2. 三.JAVA ...
- C#未来新特性:静态委托和函数指针
C#每发布一次新版本,都会增加一些底层相关的新特性, 这些特性对大多数商业程序来说并没什么实际用处,主要用于那些对性能有很高要求的代码,如图形处理.机器学习以及数学工具包,等等. 接下来的两个提案,主 ...
- C# 未来新特性:静态委托和函数指针
C# 每发布一次新版本,都会增加一些底层相关的新特性, 这些特性对大多数商业程序来说并没什么实际用处,主要用于那些对性能有很高要求的代码,如图形处理.机器学习以及数学工具包,等等. 接下来的两个提案, ...
- Atitit.atiJsBridge 新特性v7q329
Atitit.atiJsBridge 新特性v7q329 atiJsBridge 未来计划 Postdata 图像上传的支持 Simp param计划 p1 p2 p3 p4 $method 的si ...
- Atitit.js模块化 atiImport 的新特性javascript import
Atitit.js模块化 atiImport 的新特性javascript import 1. 常见的js import规范amd ,cmd ,umd1 1.1. Require更多流行3 2. at ...
- atitit.jQuery Validate验证框架详解与ati Validate 设计新特性
atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...
- Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结
Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结 1. defer关键字1 2. try!形式存在的"不失败"机制3 3. Guard 4 4 ...
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1.1. C# 1.0-纯粹的面向对象 1.2. C# 2.0-泛型编程新概念 1.3. ...
- atitit.Oracle 9 10 11 12新特性attilax总结
atitit.Oracle 9 10 11 12新特性 1. ORACLE 11G新特性 1 1.1. oracle11G新特性 1 1.2. 审计 1 1.3. 1. 审计简介 1 1.4. ...
最新文章
- 在Android上实现HttpServer
- Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现
- redhat7.0配置网卡
- Loj#114-k大异或和【线性基】
- 乘风破浪的程序员们,你们的职业生涯指南来啦~
- 有关计算机利弊的英语作文,急需一篇有关电脑优缺点的作文(英文的)
- java常量池的理解_Java常量池的大概理解
- 洛谷 P3375 【模板】KMP字符串匹配
- php的json_encode函数问题
- elisa数据处理过程图解_ELISA操作流程
- Android常用组件
- spring mybatis 项目源码
- c语言数组存在哪个地方,C语言数组考点归纳
- JavaScript两个实用的图片懒加载优化方法
- 英文word文件怎样全篇翻译成中文?
- 共线性诊断 matlab,求共线性诊断结果的含义
- 【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
- Tomcat7 管理员配置
- 真实DOM和虚拟DOM
- php解析pdf文本
热门文章
- python plot坐标轴_修改python plot折线图的坐标轴刻度方法
- 单CPU环境中如何实现多进程并行工作?
- python三大神器之fabric
- 计算机组成原理-第3章-3.3
- VMThread占CPU高基本上是JVM在频繁GC导致,原因基本上是冰法下短时间内创建了大量对象堆积造成频繁GC。...
- heartbeat+lvs+Keepalive
- 2009年十大Java技术解决方案
- day-60Django
- Python单元测试框架之pytest 1 ---如何执行测试用例
- pytest框架(三)