在对比中学习,找出知识的相似点和不同点,是学习一件快乐的事,也是高效学习的一种方法。 在学习知识的过
程中,我们都在不断地去联想,去设想,去假设,去推理,正因为这样才产生了很多的疑问,等这些疑问解决掉了,
或者解决的差不多的时候,就突然有了一种感慨:原来是这样!
在这里,我把C#中比较有意思的具有鲜明对比色彩的4种知识点进行了比较。
1、分支技术
分支是控制下一步要执行哪行代码的过程。
三元运算符
<test>?<resultIfTrue>:<resultIfFalse>
可以得到一个布尔值,运算的结果是根据test得到的布尔值来选择resultIfTrue或者resultIfFalse,这样说的可能有些抽象,我们来看一个实例。
string resultString=(myInteger<10)? "Less than 10" : "Greater than or equal to 10";
这句话的意思就是Less than 10 和 Greater than or equal to 10 谁能赋值给resultString 取决于MyInteger的
值,如果小于10,那么结果为真,选择Less than10 ,反之亦然。
if语句
if(<test>)
<code executed if <test> is true>;
只有if 后面条件为真时执行下面的语句。 另外if常和else 组合使用,我们来重写三元运算符中的那个例子。
<span style="font-size:18px;">string resultString; if (myInteger<10) resultString="Less than 10"; else resultString ="Greater than or equal to 10";</span>
switch语句
switch(<testVar>)
{
case <条件1>:
<执行的代码>;
break;
case <条件2>:
<执行的代码>
break;
……
default:
<执行代码>
break;
}
三者使用场合视情况而定,三元运算符相对if条件语句来说比较简介,但不如if语句灵活,便于理解。如果对于
比较简单的代码可以选择三元运算符。if语句可以用于条件判断,但是如果条件太多,if语句就要出现多层嵌套,给
阅读打来很大的困难。 为此switch 闪亮登场,它可以将测试变量与多值进行比较。相比if语句,简单易读。
2、类型转换
隐式
类型A的取值范围完全包含在类型B的取值范围内,就可以隐式转换成类型B
显式
明确要求编译器把数据类型转换为另一种数据类型。
通过一个例子来对比这两种类型转换的区别。
short类型的变量可以存储0-32767的数字,而byte可以存储的最大值是255,把byte类型隐式转换成short则没有
问题,A=B(short A,byteB)。 但当A的值小于255时,能否进行B=A。 答案是不可以的。那怎么办? 还好,我们
可以对A进行显示转换,即B=(byte)A 。
3、函数与委托
函数定义:
两个关键字:static和void
函数后面跟圆括号
要执行的代码放在花括号中
委托定义:
关键字:delegate
不带函数体
二者区别与联系:
委托类似函数,在定义了委托后,可以声明该委托类型的变量。把这个变量初始化为与委托有相同返回类型和
参数列表的函数引用之后,就可以使用委托变量调用这个函数。
小结:学习过程中对比一下有联系的知识,感觉学习后印象深刻,对理解一些程序起到了很大的帮助作用,对写程
序提供了一些方法指导。