一 程序的编译、构成

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://www.cnblogs.com/zhixin9001/p/6986762.html

《Inside C#》笔记(二) 初识C#相关推荐

  1. ElasticSearch学习笔记二 初识Elasticsearch

    初识Elasticsearch Elasticsearch简介 Elasticsearch术语及概念 文本(Text) 索引词/精确值(term) 精确值 VS 全文 分析(Analysis)与分析器 ...

  2. extjs 提交表单给php,JavaScript_Extjs学习笔记之二 初识Extjs之Form,Extjs中的表单组件是Ext.form.Basic - phpStudy...

    Extjs学习笔记之二 初识Extjs之Form Extjs中的表单组件是Ext.form.BasicForm,不过最简单最常用的是Ext.form.FormPanel控件,它继承自Panel,具有一 ...

  3. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...

  4. C语言学习笔记-P1 初识C语言(2)

    C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...

  5. C语言学习笔记-P1 初识C语言(1)

    C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...

  6. 咸鱼CAD笔记—CAD初识

    咸鱼CAD笔记-CAD初识 发现开发板功能实现了但是没有载体展示(比如智能家居功能实现了,房子木有.拿不出手作展示)特意学习一下CAD(毕竟雕刻机不用白不用) CAD(Computer Aided D ...

  7. css-day01笔记-CSS初识、基础选择器、文字和文本样式

    typora-copy-images-to: media 第01阶段.web基础:css-day01笔记-CSS初识.基础选择器.文字和文本样式 一.CSS层叠样式表 学习目标 理解 css的目的作用 ...

  8. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  9. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二

    当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net  网友分享于:2013-08-23  浏览:9次 <> ...

最新文章

  1. 只要有热情和方法就能学好Linux
  2. python 迭代器
  3. android 在一个Activity(A)中结束另一个Activity(B)
  4. 类与类之间关系的表示方式
  5. 计算机三级考试题库网络,计算机三级网络试题及答案解析
  6. Eclipse 3.7 3.x SWT/Jface 开发环境搭建
  7. Kylin安装,Kylin网页版教程学习
  8. Tomcat9 无法启动组件[Connector[AJP/1.3-8009]]
  9. js执行shell命令的几种方式(Node)
  10. idea创建springboot项目出现的问题
  11. Apache ActiveMQ 远程代码执行漏洞记录(CVE-2016-3088,端口:8186)
  12. Windows下的Crontab表达式解析DLL的使用
  13. 微软发布“史无前例”的恶意软件数据集,设17万奖金征集预测算法
  14. 【每日算法Day 99】你们可能不知道只用20万赢到578万是什么概念
  15. 连不通linux 27017,mongo --host 127.0.0.1:27017 报错连不上
  16. html判断文本框和按钮,css样式之区分input是按钮还是文本框的方法
  17. 原生html+css+js制作宠物小精灵icon
  18. 5.3 项目:超级秒表
  19. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(5):系统滴答定时器
  20. 【bug】data functions should return an object

热门文章

  1. mysql抑音符_MySQL-数据类型
  2. 计算机辅助教学应用论文,高校计算机辅助教学应用论文
  3. HBase读写流程、flush、文件合并、region拆分
  4. python学习-列表的操作(常用函数均会介绍)
  5. java向飞秋发文件_Java 给飞秋发送消息
  6. linux文件管理系统开发毕业,定稿毕业论文基于Linux的远程管理系统服务器端的实现word文档(范文1)...
  7. sqlserver查询当月的每一天_SQL生成一年每一天的时间列表的几种方法
  8. python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)
  9. pythonturtle库使用心得_记录我的Python学习之旅(一)关于turtle库的基本用法
  10. 访问 GitHub 的速度很慢?试试这几种方法