C#这门语言用于开发windows窗体程序非常方便,桌面应用是Java不擅长的地方,这里C#可以帮助解决(Windows环境下)
今天先写几个控制台下的程序进行练习。
一、namespace命名空间。
C#中的命名空间和java中的包基本上是一个意思,一个namespace下面可以有几个class。且namespace也可以嵌套
二、C#部分课后习题:
1.下列标识符不合法的是:
A.abc B.abc123 C.abc-1 D.a3b
题解:本题选择C。所谓标识符说通俗点来讲就是我们在程序中给变量或方法起的名字。标识符不可以以数字开头,但内部可以有数字、下划线等,但是不能有减号
_abc也是合法的标识符
2.运算符++, --的详解:
和c语言中一样,a++ + b。这句话要先将a和b相加,然后再a自增。
++a + b,这句话就要先进行a的自增,再进行相加操作。
–运算符同理
检验:
int m = 5, n = 3;
bool b1 = (m == m++) && (n == n--);
bool b2 = (n == --n) || (m == ++m);
Console.WriteLine("{0}, {1}", b1, b2);
第一个输出true, 第二个输出false
3.复杂表达式的推算:
a = 1, b = 2, c = 3
判断其值:((((c++ + --a) * b) != 2) && true)
根据上述原理易判断结果为true
4、枚举类型简述:
现实生活中,一个星期只可能有七天。这意味着这种类型的对象只可能取这七种值,不可能有其他的取法,所以,我们可以创建一个枚举类型:
enum WeekDay {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }
WeekDay weekDay;
如此,我们的weekDay对象就只可能取这七种值的一个了。默认情况下,此时Sunday对应的是0, Monday对应的是1…依此类推
当然,我们也可以不使用默认的值
小实践:
enum MyEn {a=101, b, c=207,d,e,f,g }
class Test2 {
static void Main(string[] args) {
MyEn myen = MyEn.a;
Console.WriteLine((int)myen);
}
}
此时a对应的值是101, b对应的值是102, c人为设成207, 所以d = 208,e = 209, f = 210, g = 211
看出规律了。
5、装箱与拆箱的基本概念:
在Java中我们已经知道,子类对象可以隐式转型转成父类对象,这个过程称之为装箱
比如:
int i = 123;
object boxing = i;
因为Object类是所有类的基类
如果此时我们把boxing再转回int类型,那么这个过程就称之为 拆箱 了。
比如:
int i = 123;
object boxing = i;
i = (int)boxing;
注意,拆箱首先要检查boxing是否是int类型装箱而来的,如果是,那么才可以拆成int类型,否则失败。
另外需要注意的就是,boxing拆箱的过程需要加(int)进行强转,这里需要显式的转换