0x00 分类

C#语言规范主要有两个来源,即我们熟知的ECMA规范和微软的规范。尽管C#的ECMA规范已经前后修订4次,但其内容仅仅到C# 2.0为止。所以慕容为了方便自己和各位方便查询,在此将常见的C#规范总结一下。

0x01 微软标准

这里提供的内容,都来自于微软官网。

  • C# 5.0 (2012年,Word文档)
  • C# 4.0
  • C# 3.0(2007年,Word文档)
  • C# 2.0(2005年,Word文档)
  • C# 1.2 (2003年,Word文档)
  • C# 1.0 (2002年,Word文档)

当然,除了从网上下载,如果我们安装了VS,我们同样可以在安装目录下找到C#的语言规范。

0x02 ECMA标准

如同前文所言,C#语言的ECMA标准也就是ECMA-334,已经修订到了第四版。不过最新的第四版仍然可以回溯到2006年了。所以其内容,主要到C# 2.0为止。那么下面就是ECMA-334的这四个版本:

0x03 注释出版物

上文说过,除了有C#语言标准之外,还有一些出版图书将注释与标准结合。而且,无论是微软标准还是ECMA标准,都出版过加入了来自设计团队成员以及委员会成员评论和注释的C#语言标准图书。而且其中也有被翻译为中文的,例如下面这几本。

C# Programming Language (Covering C# 4.0), The (4th Edition)

本书全部内容更新到C# 4.0版,提供了C# 4.0语言的完整规范、参考资料、范例代码和来自12位卓越的C#大师的详细注解。这些注解所达到的深度和广度在其他书中难得一见。C# 4.0新添加动态绑定、命名和可选参数以及协变和逆变泛型等特性,恰到好处的注解解释了这些特性的重要性、使用方法、与其他语言的关系等。其实本质就是C# 4.0的注释版。当然了,还有C# 3.0的注释版,这里就不再赘述了。

下面我们来看看ECMA标准的注释版吧。

Annotated C# Standard

这本书则是ECMA(C# 2.0)标准的注释版。不过目前我只找到了英文版,当然网上也有PDF流传。如果各位有机会可以看看,相信能获益不少。

c#语言规范的更多相关文章

  1. JAVA语言规范-线程和锁章节之同步、等待和通知

    JAVA语言规范:线程和锁 1 同步 java编程语言提供了线程间通信的多种机制.这些方法中最基本的是同步化,此方法是使用监视器实现的.JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视 ...

  2. java 语言规范 java language specifications

    在线地址: https://docs.oracle.com/javase/specs/ java语言规范下载: 链接:http://pan.baidu.com/s/1miEpJwk 密码:f89v j ...

  3. Python语言规范及风格规范

    语言规范: http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_ ...

  4. Protocol Buffer技术详解(语言规范)

    Protocol Buffer技术详解(语言规范) 该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo.这样做的目的 ...

  5. PHP的语言规范

    PHP的语言规范: 1.php中的变量名区分大小写,但是函数名,类名,方法名,不区分大小写,但建议区分大小写 2.php代码必须书写在<?php?>(php标签),开启标记(<?ph ...

  6. JAVA语言规范和API网址

    Java语言规范: http://docs.oracle.com/javase/specs/ Java API: http://docs.oracle.com/javase/8/docs/api/in ...

  7. C# 语言规范_版本5.0 (第0章 目录)

    C# 语言规范 版本5.0 注意 © 1999-2012 Microsoft Corporation.保留所有权利. Microsoft.Windows.Visual Basic.Visual C# ...

  8. google的python语言规范

    Python语言规范   Lint Tip 对你的代码运行pylint 定义: pylint是一个在Python源代码中查找bug的工具. 对于C和C++这样的不那么动态的(译者注: 原文是less ...

  9. java语言规范,main方法必须声明为public

    注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...

随机推荐

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  3. Intellij idea添加单元测试工具

    1.idea 版本是14.0.0 ,默认带有Junit,但是不能自动生成单元测试,需要下载JunitGererator2.0插件 2.Settings -Plugins,下载 JunitGenerat ...

  4. $.type 怎么精确判断对象类型的 --(源码学习2)

    目标:  var a = [1,2,3];     console.log(typeof a); //->object     console.log($.type(a)); //->ar ...

  5. Xamarin+Prism开发详解五:页面布局基础知识

    说实在的研究Xamarin到现在,自己就没设计出一款好的UI,基本都在研究后台逻辑之类的!作为Xamarin爱好者,一些简单的页面布局知识还是必备的. 布局常见标签: StackLayout Abso ...

  6. 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

    其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...

  7. 解构C#游戏框架uFrame兼谈游戏架构设计

    1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...

  8. Kafka副本管理—— 为何去掉replica.lag.max.messages参数

    今天查看Kafka 0.10.0的官方文档,发现了这样一句话:Configuration parameter replica.lag.max.messages was removed. Partiti ...

  9. FullCalendar应用——整合农历节气和节日

    FullCalendar用来做日程管理功能非常强大,但是唯一不足的地方是没有将中国农历历法加进去,今天我将结合实例和大家分享如何将中国农历中的节气和节日整合到FullCalendar中,从而增强其实用 ...

  10. ES6之let命令详解

    let与块级作用域 { var foo='foo'; let bar='bar'; } console.log(foo,'var'); //foo varconsole.log(bar ,'bar') ...