【基元类型推荐】

推荐直接使用 FCL 类型。

【理由】

  • 编码时不至于困惑string与String的使用。由于C#的stirng(一个关键字)直接映射到System.String(一个 FCL 类型),所以两者没有区别,都可以使用。不至于困惑int在32位操系统和64位操作系统上代表的整数不同。 有的开发人员认为int在32位操作系统上运行时,代表32位整数;而在64位操作系统上运行时,代表64位整数,这个观点完全错误。在C# 中,int 始终映射到System.Int32,所以不管在什么操作系统上运行,代表的都是32位整数。如果程序员习惯了再代码中使用Int32,像这 样的无解就不会产生了。
  • C#中的关键字代表的意义在其他的语言中不一定成立。在C#中,long映 射到System.Int64,但在其他编程语言中,long可能就映射到Int16或Int32.例如,C++/CLI 就将long视为一个 Int32.习惯于用一种语言写程序的人在看到用另一种语言写的源代码时,很容易错误地理解代码的意图。事实上,大多数语言甚至不将long看作是一个关 键字,根本不会编译使用了它的代码。
  • 代码一目了然,含义清晰。 FCL 的许多方法都将类型名称作为方法名的一部分。例如:BinaryReader类型提供的方法包括 ReadBoolean,ReadInt32,ReadSingle等;而System.Convert类型提供的方法包括 ToBoolean,ToInt32,ToSingle等。以下代码虽然语法没有问题,但包含float的那一行显得颇不自然,无法一下子判断该行的正确性:
    BinaryReader br = ner BinaryReader(...);
    float var0 = br.ReadSingle();//正确,但不自然
    Single var1 = br.ReadSingle();//正确,而且一目了然
  • 了解其他语言也可以面向CLR。 平时只用C#的许多程序员逐渐忘了还可以用其他语言写面向CLR的代码。因此,“C#主义”逐渐入侵类库代码。例如,Microsoft的FCL几乎是完 全用C#写的,FCL团队的开发人员现在向库中引入了像Array的GetLongLength这样的方法。该方法返回一个Int64值。这种值在C#中 是long,但在其他语言中不是(C++/CLI)。另一个例子是System.Linq.Enumerable的LongCount方法。

最新文章

  1. jexus /Tinyfox Owin适配器
  2. java基础 绘图技术.坦克大战 之java绘图坐标体系(二)
  3. 在JS函数中执行C#中的函数、字段
  4. HDU 3829 - Cat VS Dog (二分图最大独立集)
  5. 3DSlicer源代码编译过程vs2008+windows xp [转]
  6. oracle创建存储过程并返回结果集(附C#调用代码)
  7. html5判断用户摇晃了手机(转)
  8. Git error: hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused b
  9. 假金币问题-PKUacm1029-ACM
  10. 在struts2的action中操作域对象(request、session)
  11. 深入浅出SQL Server 2008 分区函数和分区表
  12. Spring Security 概念基础 验证流程
  13. springCloud系列 Config配置中心
  14. vue.js国际化vue-i18n插件的使用问题,在模版文本、组件方法、jsf方法里的使用
  15. PROJ.4学习——初识PROJ
  16. 一些关于three.js的摘抄笔记
  17. fpm...failed: Cannot assign requested address
  18. 强化学习-MDP(马尔可夫决策过程)算法原理
  19. dede的使用-2
  20. wordpress点击中文tag标签出现404解决方案

热门文章

  1. jdbc.properties 文件的配置
  2. hadoop再次集群搭建(2)-配置免秘钥ssh登录
  3. Ubuntu安装Chrome及hosts修改
  4. Android开源地图项目 BigPlanetTracks 学习随笔
  5. 正确的停止java中的线程
  6. Condition实现一个生产者一个消费者
  7. linux安装thrift
  8. 1.6 opencv视频操作基础
  9. Entity Framework Tutorial Basics(3):Entity Framework Architecture
  10. PartyLocation的Post请求问题---debug