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和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
  • 相关阅读:
    rss相关资料(TODO)
    chrome extension 开发
    macos finder 创建smart folder
    JDK 16都发布了,为什么我们要关心Java8
    你真的了解索引吗(上)?|mysql 系列(6)
    VARCHAR 最多存多少个字符?|mysql系列(3)
    Ansible 快速入门
    MySQL 中存储时间的最佳实践
    没登录网页也能个性化推荐?一文详解浏览器指纹
    私有化仓库的 GO 模块使用实践
  • 原文地址:https://www.cnblogs.com/pangxiaoliang/p/1530652.html
Copyright © 2011-2022 走看看