Csharp/C Sharp/Language Basics/as

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

as operator

<source lang="csharp">

using System;

class Employee { }

class ContractEmployee : Employee { }

class CastExample5 {

   public static void Main ()
   {
       Employee e = new Employee();
       Console.WriteLine("e = {0}", e == null ? "null" : e.ToString());
  
       ContractEmployee c  = e as ContractEmployee;
       Console.WriteLine("c = {0}", c == null ? "null" : c.ToString());
   }

}

</source>


Using the as Keyword to Work with an Interface

<source lang="csharp">

using System;

public interface IPrintMessage {

   void Print();

};

class Class1 {

   public void Print()
   {
       Console.WriteLine("Hello from Class1!");
   }

}

class Class2 : IPrintMessage {

   public void Print()
   {
       Console.WriteLine("Hello from Class2!");
   }

}

class MainClass {

   public static void Main()
   {
       PrintClass   PrintObject = new PrintClass();
  
       PrintObject.PrintMessages();
   }

}

class PrintClass {

   public void PrintMessages()
   {
       Class1      Object1 = new Class1();
       Class2      Object2 = new Class2();
  
       PrintMessageFromObject(Object1);
       PrintMessageFromObject(Object2);
   }
  
   private void PrintMessageFromObject(object obj)
   {
       IPrintMessage PrintMessage;
  
       PrintMessage = obj as IPrintMessage;
       if(PrintMessage != null)
           PrintMessage.Print();
   }

}

</source>