|
一、枚举
如何定义枚举:
例如-2.1 Public enum TimeOfDay { Morning = 0; Afternoon = 1; Evening = 2; }
那么如何访问这个枚举 呢?
例如 TimeOfDay.Morning它将返回0;
同时我们还可以返回一个字符串值,例如返回Morning,操作如下: TimeOfDay time = TimeOfDay.Morning;
Console.writeline(time.Tostring)
我们还可以通过以下的方式获取枚举值, TimeOfDay time = (TimeOfDay)Enum.parse(Typeof(TimeOfDay),"Morning",true); Console.WriteLine ((int)time);
也许你会问怎么不使用TimeOfDay.Morning返回0而要这样返回数值呢?
这里是使用一种得到的字符串追踪数值的方法,返回值是一个对象引用,所以我们还要通过转换为TimeOfDay的枚举类型,同时再通过int转换为值类型,必须为显式转化。
System.Enum.parse()为一个静态方法,返回值为一个对象引用。
二、数组(简单介绍)
数组定义:
不赋值:int[] integers;//创建一个空的引用,以后可以通过如下的方法进行分配大小 integers=new //int[100] 赋值状态:int[] integers=new int[100];//需要new关键字
和java中的定义是一样的。
所有的数组都是引用类型,相当于c++中的指针类型。也就是说多个数组可以公用一个堆栈。
查看一个数组中包含多少个元素的方法:int arraylenth = integers.Lenth;
三、命名空间
命名空间是一个逻辑组合而不是物理组合,和文件夹、java里面的包的概念不一样。
using关键字,可以引用命名空间,在以后的编辑过程中可以简写被引用的命名空间的类和方法等,具体的看以下的例子: namespace Leo.Learning.Mycode { class Test { //output statement1 Public void method1() { //output statement2 } } }
Using 的另外一个用途:指定命名空间的别名
命名空间的名称比较长时引用就比较的麻烦,可以通过以下方法指定一个比较短的空间名称
Using aaa= namespacename;
当要使用的时候需要如下格式:aaa::NameSpaceExample,即表示该命名空间中的NameSpaceExample类。每个类都有一个GetType方法使用该方法可以获得空间的名称,
This.GetType().NameSpace;
四、编译程序
csc csfilename.cs
编译参数:/t:library或者/t:module或者/t:winexe或者/t:exe--默认
五、控制台的I/O
使用console类中的write,writeLine方法输出,相当与C语言中的print
例子: int i; int j ; Console.WriteLine ("{0}plus{1}equals{2}",i,j,i+j)
格式化输出。
六、使用注释
单行//
多行/* …… */
七、XML文档说明
代码说明,详见例子:
八、预处理器指令
格式:以#开头,不需要分号结尾,每个指令换行,需要写在文件的最开头位置。
作用:禁止编译器编译代码的某一部分
例如:#define DEBUG
预处理指令有: #if ,#elif, #else ,#endif #define ,#undef #warning , #error #region ,#endregion
九、c#编程规则
1、标识符规则;必须以一个字母合格下划线开头,但可以包含数字字符,不能把c#关键字用作标识符。
命名约定:
pascal大小写形式,变量的第一个字母为英文大写,单词组成的标识符,各单词的第一个字母大写。如MyDeskAttribute
camal大小写形式,变量的第一个字母为英文小写,单词组成的标识符,各单词的第一个字母大写,如:myDeskAttribute
全部使用pascal大小写形式的:包括类名,变量名,命名空间,基类成员等。同时常量也不例外。
以下三种情况使用camal大小写形式:
1、所有私有成员变量的名称,但是通常以下划线开头。
例如; public int _subscriberedId
2、传递给方法的所有参数
3、用于区分两个同名的对象
|