c#入门经典笔记第五章

一、如何在类型之间进行隐式和显示转换
  1、显式转换<(destinationType)sourceVar>

  2、转换时会出现溢出的问题,可以用checked和unchecked关键字,checked(expression),使用unchecked则不会检查。还可以配置应用程序使这种类型的表达式都包含checked关键字。

二、如何创建和使用枚举类型

 1、比如”方向“可以有四个变量,这时可以定义一个枚举类型。可以把定义单独放在一个命名空间中。※没有分号

namespace ch05ex02
{
enum<typeName>:<underlyingType> { <value1> = <actualVal1>, <value2> = <actualVal2>, <value2> = <actualVal2> }
}

  2、underlyingType定义枚举中值的类型,value1也可以赋枚举型的值。默认从0开始,自动+1。获取枚举中的值用圆点运算符。

  3、可以使用Console.ToString()或ToString()可以获取枚举的字符串值(这里表明枚举值本质上还是int型或underlyingType型)

  4、将string转换为枚举值时用

  (enumerationType)Enum.Prase(typeof(enumerationType),字符串)

三、如何创建和使用结构类型

  结构是由几个数据构成的数据结构,这些结构可以有不同的类型。根据这个结构可以定义自己的数据类型。

  1、可以把结构和枚举放到一个单独的命名空间中

  2、通过圆点运算符进行访问

四、如何创建和使用数组

  1、用一下方式声明数组

  <baseType>[] <name>;

  2、必须在方问之前进行初始化,可以在声明的时候初始化。初始化有两种方式

  (1)int[] myIntArray = {1,2,3,4,5,};

  (2)int[] myIntArray = new int[5];\\可以理解为给数组变量在预留五个int型的内存位置

   (3)还可以是以上两种的组合 int myIntArray = new int[5] {1,2,3,4,5};数组大小必须与元素个数匹配。

  (4)个数可以用一个常量指定

  2、数组的遍历。可以使用for循环,但存在非法访问的危险。使用foreach循环

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

  { \\can use <name> for each elements}

  这个循环迭代每个元素,一次把每个元素放在变量<name>中,且不存在非法访问的危险。

  与for的区别在于foreach对数组内容进行只读访问

  3、多维数组。在方括号中使用逗号

  <baseType> [,,] <name>;

  访问多维数组也使用逗号,

  <name> [,,];

  4、数组的数组
五、如何处理字符串值

  1、string类型变量可以看做是char变量的只读数组,可以用下面语法访问每个字符:

    string myString = "A string";

    char myChar = myString[1];

  2、上面的不能为各个字符赋值,可以使用ToCharArray()命令,获得可写的char数组

    string mySring = “A string”;

    char[] myChar = myString.ToCharArray();

  3、可以在foreach循环中使用字符串

    foreach (char character in myString)

        {

          Console.WriiteLine("{0}",character);

         }

  4、可以使用myString.Length获取元素的个数,(mySting是字符串的名字)

  5、<string>.ToLower和<string>.ToUpper命令,应用如下

    string userResponse = Console.ReadLine();

    if(userResponse.ToLower == "yes")

    {// Act on response.}

  6、<string>.Trim()命令可以删除字符串中的空格

    string userResponse = Console.ReadLine();

    userResponse = userResponse.Trim();

    if (userResponse.ToLower() == "yes")

      {//Act on response.}

    使用该命令还可以删除其他字符,需在数组中指定

char[] trimChars = {' ', 'e', 's''};
string userResponse = Console.ReadLine();
userResponse = userResponse.ToLower();
userResponse = userResponse.Trim(trimChars);
if (userResponse == "y")
    {
            \\Act on response.
    }    

  还可以使用<string>.TrimStar()和<string>.TrimEnd()命令,可以把字符串的前面或后面的空格删掉。这些命令也可以指定char数组。

  7、<string>.PadLeft()和<stign>.PadRight命令,可以在字符串的左边或右边添加空格,也可以添加一个字符到字符串上。

  string myString = “Aligned”;

  mystring = myString.PadLeft(10);

  其中10是指定总长度的,上面代码将把3个空格加到单词的左边

  string myString = “Aligned”;

  mystring = myString.PadLeft(10,-);

  上面代码将在myString的开头加上3个短横线。

   8、<string>.Split()把string转换为string数组。

        static void Main(string[] args)
        {
            string myString = "This is a test.";
            char[] separator = {' '};
            string[] myWords;
            myWords = myString.Split(separator);
            foreach (string word in myWords)
            {
                Console.WriteLine("{0}", word);
                Console.ReadKey();
            }
        }

  书上说得到的“”每个单词都没有空格,……在使用split()时,删除了分割符“,但在VS2008中得到的结果还会有空格,不知道是08与10的区别还是我没调试好的原因

 

posted @ 2013-09-29 11:45  w-l  阅读(580)  评论(0编辑  收藏  举报