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://www.cnblogs.com/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#的未来新特性计划草案的更多相关文章

  1. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V8   重构iocutilV4,use def iocFact...jettyUtil V ...

  2. Atitit. Atiposter 发帖机 新特性 poster new feature v11  .docx

    Atitit. Atiposter 发帖机 新特性 poster new feature v11  .docx 1.1.  版本历史1 2. 1. 未来版本规划2 2.1. V12版本规划2 2.2. ...

  3. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V1  初步实现sina csdn cnblogs V2  实现qzone sohu 的发帖 ...

  4. atitit.ntfs ext 文件系统新特性对比

    atitit.ntfs ext 文件系统新特性对比 1. 现代文件系统应该有的特性2 1.1. 恢复Log2 1.2. 压缩2 1.3. Meta ext2 1.4. Fulltextཟsearch  ...

  5. Atitit mac os 版本 新特性 attilax大总结

    Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0)  1984年2 2.2. Mac OS 7. ...

  6. Atitit hibernate3 hinernate4 hibernate5新特性attilax总结

    Atitit hibernate3 hinernate4 hibernate5新特性attilax总结 1.1. Hibernate3的新特性 1 1.2. hibernate4.1版本中的新特性和h ...

  7. Atitit js es5 es6新特性 attilax总结

    Atitit js es5 es6新特性 attilax总结 1.1. JavaScript发展时间轴:1 1.2. 以下是ES6排名前十的最佳特性列表(排名不分先后):1 1.3. Es6 支持情况 ...

  8. Atitit.android  jsbridge v1新特性

    Atitit.android  jsbridge v1新特性 1. Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的.只是参数url的写法不一样而已1 2. 三.JAVA ...

  9. Atitit  hre框架v5 新特性  HREv5

    Atitit  hre框架v5 新特性  HREv5 1. V5新特性 apiurl2="/wrmiServlet";1 2. V1 新特性1 3. V2 新特性 添加php版1 ...

随机推荐

  1. sqlplus version

    $ export ORACLE_HOME=/opt/oraClient/11.2.0.4$ $ ./sqlplus -version SQL*Plus: Release 11.2.0.4.0 Prod ...

  2. [P1580] yyy loves Easter_Egg I

    Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...

  3. [BZOJ 4060] Word Equations

    Link: BZOJ 4060 传送门 Solution: 可以发现字符串间的关系可以构成一棵树 于是我们先用字符串哈希建树,再树形$dp$即可 设$dp[i][j]$为第$i$个节点从$P$字符串的 ...

  4. 【计算几何】【辛普森积分法】UVALive - 7076 - Highway

    春节前后想了好久才在队友的讲解下想明白…… 太难讲了,我就不讲了,大概就是考虑直着走到高速上还是斜着走到高速上,然后平移直线和大圆相切,把生成的最大的“桥”和大圆并一下就行了. #include< ...

  5. 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing

    引用zky的题解:http://blog.csdn.net/iamzky/article/details/39667859 每条S-T路径代表一次比赛的结果.最小割会尽量让一个人赢得最多. 因为二分总 ...

  6. 十. 图形界面(GUI)设计10.菜单

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  7. 十面阿里 Java 程序员,最终拿下阿里 P6 offer!

    转子:https://mp.weixin.qq.com/s/RkMxPbm8E99-rTZKmvBy6Q 今天介绍小编的一个朋友,他现今有四年开发经验了,前前后后为了进阿里面试十次(阿里旗下—蚂蚁金服 ...

  8. http://zhidao.baidu.com/link?url=fX6C1xFLsqiuTY88cjwJYal2x52rOwlJstmz7KWyMc6l9j3FHw2yhvp83timZ86pwhqQ8rONj2xkgo2wbU2tLK

    http://zhidao.baidu.com/link?url=fX6C1xFLsqiuTY88cjwJYal2x52rOwlJstmz7KWyMc6l9j3FHw2yhvp83timZ86pwhq ...

  9. java 把json对象中转成map键值对

    相关:Json对象与Json字符串的转化.JSON字符串与Java对象的转换 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据 比如json数据如下: {responseHeade ...

  10. 【前后台分离模式下,使用OAuth Token方式认证】

    AngularJS is an awesome javascript framework. With it’s $resource service it is super fast and easy ...