C#入门经典 Chapter5 变量的更多内容

5.1类型转换

  1.类型转换

    1.1隐式转换:所有情况下可进行,编译器执行转换。

    1.2显示转换

      强制转换:强迫数据从一种类型转换为另一种类型。

      (<destinationType>)<sourceVar>

      溢出检查上下文:

      checked(<expression>)

      unchecked(<expression>)

      也可在VS中修改项目属性propertie→Build→Advanced→check for arithmetic overflow/unoverflow

    1.3使用 Convert命令进行显式转换。

      Convert.ToBoolean();  Convert.ToChar();  Convert.ToDouble();  Convert.ToByte();  Convert.ToDecimal();

      Convert.ToInt16();(short)    Convert.ToInt32();(int)    Convert.ToInt64();(long)  Convert.ToUInt64(ulong)

      Convert.ToSByte();(sbyte)  Convert.ToSingle();(float)    

      Convert.ToString();  Convert.ToUInt16();(ushort)

      要进行溢出检查,且checked/unchecked以及项目属性设置不起效

     附:short*short 返回 int 类型的值。

     另:ex1:short s1 =1;s1=s1+1; 报错。

       原因:short+int,会隐式转换为int类型,C#会把byte,short等类型的数据进行四则运算后的结果设为int类型,要求用户进行一次强制类型转换。

       ex2:short s2=1;s2+=1;正确

       原因:复合赋值运算会将运算结果隐式转换成运算符左边的类型。


5.2 复杂的类型

  2.1枚举

    定义:enum <typeName>:<underlyingType>(默认为int,可指定为其他基本类型)

       {

        <value1>,

        <value2>,

        ……,

        <valueN>

       }

    声明这个类型的变量:<typeName> <varName>;

    赋值:<varName>=<typeName>.<value>;

    附:(enumerationType)Enum.Parse(typeof(enumerationType),enumerationValueString);

      把string 转化为枚举值。

  2.2结构

    struct<typeName>

    {

     <memberDeclarations>→<accessibility><type><name>;(public double distance;)

    }

  2.3数组

    1.声明:<baseType>[] <name>;

    2.foreach循环:对数组内容进行只读访问,不能改变任何元素的值。

     foreach(<baseType><name> in <array>)

     {

      //can use <name> for each element.

     }

    3.多维数组:使用多个索引访问其元素的数组。


5.3字符串的处理

  string类型变量可以看成是char变量的只读数组。

  <string>.ToCharArray();

  <string>.ToLower();

  <string>.ToUpper();

  <string>.Trim();  <string>.TrimStart();  <string>.TrimEnd();

  <string>.PadLeft();  <string>.PadRight();(在字符串左/右边添加空格,使字符串达到指定长度。)

  <string>.Split(); 可将string转化为string数组,把它在指定位置分隔开。

  <string>[].Join();串联对象数组的各个元素,其中在每个元素之间使用指定的分隔符。

 

posted on 2017-05-08 15:01  圆不润  阅读(167)  评论(0编辑  收藏  举报