zoukankan      html  css  js  c++  java
  • c# IS与AS的使用方法

    //解决:在很多情况下,我们并不知道对象是否支持某一接口,这时,可以试图讲对象转化为接口类型
    //在c#里面,我们可以采取两种方法获的对象知否支持某个接口

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication6
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                conn cn 
    = new conn();
                
    if (cn is Iconnect)//是否实现了接口
                {
                    Iconnect iconn 
    = (Iconnect)cn;
                    iconn.read();
                    Console.ReadLine();
                }
                
    else
                {
                    Console.WriteLine(
    "can not connvert");
                    Console.ReadLine();
                }

                
    //IS操作符很清晰,但是操作效率不高,另种方式是AS

                conn cnn 
    = new conn();
                Iconnect icnn1 
    = cnn as Iconnect;
                
    if (icnn1 != null)
                {
                    icnn1.write();
                    Console.ReadLine();
                }
                
    else
                {
                    Console.WriteLine(
    "can not connvert");
                    Console.ReadLine();
                }
                
    //as 操作符首先测试转换是否合法,如果合法就转换,否则返回NULL。关键词NULL表示空引用
            }
        } 

        
    public interface Iconnect
        {
            
    void read();
            
    void write();
        }

        
    public class conn : Iconnect
        {
            
    public void read()
            {
                Console.WriteLine(
    "实现了read()方法");
            }
            
    public void write()
            {
                Console.WriteLine(
    "实现了write()方法");
            }
        }

    }

    结论:

    1.IS操作符很清晰,但是操作效率不高,另种方式是AS

    2.as 操作符首先测试转换是否合法,如果合法就转换,否则返回NULL。关键词NULL表示空引用

  • 相关阅读:
    [bzoj 3048] [Usaco2013 Jan]Cow Lineup
    [bzoj 3192] [JLOI2013]删除物品
    搬迁至新博客的原因
    洛谷 P3317 [SDOI2014]重建(矩阵树定理+数学推导) [bzoj3534]
    [bzoj1002]: [FJOI2007]轮状病毒(矩阵树定理)
    [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
    高精度板子
    洛谷 P3211 [HNOI2011]XOR和路径(推dp+高斯消元)
    字符串--manacher算法(回文串匹配)
    洛谷 P2633 Count on a tree[bzoj2588](倍增lca+主席树)
  • 原文地址:https://www.cnblogs.com/muer/p/1742569.html
Copyright © 2011-2022 走看看