C#中的空对象使用

    注:以String 类型为例

  1. 不允许使用未赋值的变量;

    //未赋值情况

    string str1;

    string str2 = "%";

    str2 = str1 + str2;    //错误,使用了为赋值的局部变量str1,编译无法通过。

    Console.WriteLine(str2);

    结果:(编译时报错)

     

  2. 空对象(null)可以被使用,但不能被"."(点操作);

     

    //使用空对象,但不"."点操作

    string str1 = null;    //赋值为null

    string str2 = "%";

    str2 = str1 + str2;    //没有问题

    Console.WriteLine(str2);

    结果:%

   //空对象"."操作

   string str1 = null;

   string str2 = "%";

   str2 = str1.ToString() + str2;    //抛出异常,null对象被点操作了

   Console.WriteLine(str2);

   结果:(运行时抛异常)

 

 

  1. 字符串的""不是null,只是值的长度为0(0个字符), 在内存中分配了空间。

  //赋值为""情况

  string str1 = string.Empty;    //赋值为""

  string str2 = "%";

  str2 = str1 + str2;            //没有问题

  Console.WriteLine(str2);

  结果:%

 

  //赋值为""情况

  string str1 = string.Empty;    //赋值为""

  string str2 = "%";

  str2 = str1.ToString() + str2;    //没问题

  Console.WriteLine(str2);

 

 

posted @ 2008-11-26 20:13  Peach  阅读(2550)  评论(0编辑  收藏  举报