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