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表示空引用

原文地址:https://www.cnblogs.com/muer/p/1742569.html