首页 > 代码库 > C#面向对象基础(二)

C#面向对象基础(二)

   在对比中学习,找出知识的相似点和不同点,是学习一件快乐的事,也是高效学习的一种方法。 在学习知识的过

 

程中,我们都在不断地去联想,去设想,去假设,去推理,正因为这样才产生了很多的疑问,等这些疑问解决掉了,

 

或者解决的差不多的时候,就突然有了一种感慨:原来是这样!

 

   在这里,我把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

       不带函数体

 

   二者区别与联系:

    委托类似函数,在定义了委托后,可以声明该委托类型的变量。把这个变量初始化为与委托有相同返回类型和

参数列表的函数引用之后,就可以使用委托变量调用这个函数。

    

 

  小结:学习过程中对比一下有联系的知识,感觉学习后印象深刻,对理解一些程序起到了很大的帮助作用,对写程

提供了一些方法指导。

   

 

 

                     

C#面向对象基础(二)