zoukankan      html  css  js  c++  java
  • 《Inside C#》笔记(二) 初识C#

    一 程序的编译、构成

    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的形式

  • 相关阅读:
    mysql密码忘记如何恢复(windows/liunx版本:mysql8.0.27)
    Visual Studio Code如何校验yaml格式文件
    python测试小工具
    Lunx vimgo 开发环境搭建
    小白学正则表达式之 regexp
    kubernetes scc 故障排查小记
    Go image registry
    OpenShift image registry 概述
    Go 疑难杂症汇总
    小白学标准库之 http
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/6986762.html
Copyright © 2011-2022 走看看