• 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和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
  • 相关阅读:
    Microsoft SQL Server 2008 基本安装说明
    微软的招聘哲学——做微软人的五大核心素质
    大型网站性能优化的通用方法
    模型驱动的开发,回忆一年多前的一次开发
    远离客户陷阱小故事 转
    单例模式(Singleton)
    真的很高兴,就在今天“博客园团队”为我们开通了 “CSLA 团队”
    桥接模式(Bridge)与合成/聚合复用原则(CARP)
    2009年11月11日
    虚拟化的好处 随笔
  • 原文地址:https://www.cnblogs.com/pangxiaoliang/p/1530652.html
Copyright © 2020-2023  润新知