博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Inside C#》笔记(二) 初识C#
阅读量:5948 次
发布时间:2019-06-19

本文共 1236 字,大约阅读时间需要 4 分钟。

hot3.png

一 程序的编译、构成

a) 编写C#代码一般用VS,但作者在这儿介绍了使用记事本编写C#代码并编译运行的过程,以便对VS有更深入的认识。

用记事本编写C#代码后,修改文本文件的后缀为.cs,然后用csc.exe(C# Command-Line Complier)来编译。如果编译成功,在命令行输入程序的路径和名称便可以执行了。

 

b) 用命名空间来为类分组,可以在.cs文件的头部使用Using指令来代指命名空间,后续使用类时,编辑器会从Using指令指定的命名空间中查找是否有对应的类。

还可以在Using指令区域为类创建别名,比如:

 

 

c) 程序错误

对程序来说,任何意料之外发生的事都可以认为是错误。程序错误分为两种:编译时错误和运行时错误。前者在编译的时候就会发生,这时编辑器会提示错误信息类似:

 

 

错误信息告知了编译时发生的错误详情,并有错误代码,比如图中的cs0234。关于该错误的更详细信息可以在.NET Framework SDK Documentation中根据错误码查找。

 

 

对于编译时错误,如果一个文件中有多处错误,编译器只会报第一个错,因为只要遇到错误,编译就会终止。

 

 

二 ILDASM

这里作者详细介绍了HelloWold.cs程序使用ILDASM生成的IL码。

 Main函数的IL码如下:

 

程序第一行.method关键字表示方法,另外有public、static修饰符,最后还有managed关键字,与之对应的还有unmanaged、unsafe,这些作者会在后面讲解。

第二行的.entrypoint表示这个方法是这个程序的入口,这在C#中对应Main函数为入口函数。

IL_0000行,ldstr为Load String的简写,将硬编码“Hello, World”装载到内存。

IL_0005行,调用Console.WriteLine函数,后面括号中的(class System.String)指示了参数的类型和个数。

最后一行还有IL_000a: ret,图里面漏掉了,表示返回执行结果。

 

 

三 关于命名规范

统一的命名规范有很对好处,比如降低维护成本。本书成书于2002年前后,作者还认为匈牙利命名规范(名称中包含了变量的类型、作用域等信息)不适合面向对象语言,因为在这类语言中类型都继承自基本类型,比如在C#中都继承自System.Object。

推荐组合使用帕斯卡命名法(Pascal Casing)和驼峰命名法(Camel Casing),在类、方法的命名中使用帕斯卡命名法,在变量的命名中使用驼峰命名法。详情如下:

命名空间:帕斯卡,推荐使用公司名称

类:帕斯卡,使用能描述类的职能的名词

方法:帕斯卡,使用描述方法动作的动词

方法参数:帕斯卡,使用有意义的名称

接口:帕斯卡,以大写字母I开头,代表某种行为,推荐使用I***able的形式

转载于:https://my.oschina.net/u/2327858/blog/918883

你可能感兴趣的文章
css文本 颜色1
查看>>
博客搬家了
查看>>
JavaScript中的作用域,闭包和上下文
查看>>
Python中使用ElementTree解析xml
查看>>
Python LOGGING使用方法
查看>>
Dominating Patterns
查看>>
截取指定字符串
查看>>
metrics-server最新版本有坑,慎用
查看>>
linux虚拟文件系统浅析
查看>>
HBase数据压缩编码探索
查看>>
sprint计划会议总结
查看>>
团队项目冲刺1
查看>>
fon循环总是返回最后值问题
查看>>
Android新权限机制 AppOps
查看>>
“蓝桥杯”软件大赛入门训练4道题
查看>>
Unable to get the CMake version located at
查看>>
爬虫基本原理
查看>>
Heritage from father
查看>>
css选择器
查看>>
使用多线程
查看>>