zoukankan      html  css  js  c++  java
  • 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对象
    }
    个人推荐第一种写法^=^
    敬告

    作者:pangxiaoliang
    出处:http://www.cnblogs.com/pangxiaoliang
    本文版权归pangxiaoliang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
  • 相关阅读:
    BZOJ2734 [HNOI2012]集合选数
    BZOJ2288:[POJ Challenge]生日礼物
    浅谈堆
    BZOJ1150:[CTSC2007]数据备份
    POJ2442:Sequence
    POJ1442:Black Box
    POJ3784:Running Median
    洛谷【P1090】合并果子&&洛谷【P1334】瑞瑞的木板
    BZOJ1345:[Baltic2007]序列问题
    浅谈栈
  • 原文地址:https://www.cnblogs.com/pangxiaoliang/p/1530652.html
Copyright © 2011-2022 走看看