一颗不安分的创业心

C#细节之as和is

判断对象或变量属于某种类型:
一、适用类型
1)is可以判断引用类型和值类型。
2)as可以判断引用类型和可空类型。(注:当值类型变为可空类型时可以用as判断,可以推断可空实际是将值类型进行装箱操作转化为了引用类型)。
二、返回值
1)is返回值为bool型。
2)as返回值为要判断类型。
例1:
class Program
    {
        static void Main(string[] args)
        {
            int? i = 0;
            string j = String.Empty;
            int k = 0;
            if (j is int)
            {
                Console.WriteLine("int");
            }
            else
            {
                Console.WriteLine("not int");
            }

            Other other = new Other();
            if (other is Other)
            {
                Console.WriteLine("Yes");
            }
            else
            {
                Console.WriteLine("No");
            }
            //int x = k as int;//Error:as不可以用于值类型
            int? y = i as int?;//as可以用在可空类型
            Console.ReadKey();
        }
    }

    class Other
    {
    }
例2:
FindControl判断类型时有两种写法:
1)
TextBox txtTmp = XXX.FindControl("txtTmp") as TextBox;
if(txtTmp!=null)
{
      txtTmp.Text  = "Hello";//操作txtTmp对象
}
2)
TextBox txtTmp = XXX.FindControl("txtTmp") as TextBox;
if(txtTmp is TextBox)
{
     txtTmp = (TextBox)XXX.FindControl("txtTmp");
     txtTmp.Text  = "Hello";//操作txtTmp对象
}
个人推荐第一种写法^=^
posted @ 2009-07-28 15:22  pangxiaoliang[北京]流浪者  阅读(337)  评论(1编辑  收藏  举报
小豆芽之父