Is(is关键字判断类型的兼容性, person is Animal)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConvertTest { class Program { static void Main(string[] args) { #region//as 和is Person p = new Person(); if (p is Animal) { Console.WriteLine("类型兼容"); } if (p is Person) { Console.WriteLine("他是person类型"); } if (p is Object) { Console.WriteLine("他也是object类型的"); } #endregion Console.Read(); } } class Animal { public void Eat() { Console.WriteLine("吃饭"); } } class Person : Animal { string name; public string Name { set { this.name = value; } get { return name; } } public void Work() { Console.WriteLine("gongzuo"); } } }
As(as只能用于引用类型的转换)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConvertTest { class Program { static void Main(string[] args) { Help h = new Help(); ArrayList list = h.GetPerson(); foreach (object o in list) { //把o类型转换成Person类型。 Person ps = o as Person; Console.WriteLine(ps.Name); } Console.Read(); } } class Animal { public void Eat() { Console.WriteLine("吃饭"); } } class Person : Animal { string name; public string Name { set { this.name = value; } get { return name; } } public void Work() { Console.WriteLine("gongzuo"); } } class Help { public ArrayList GetPerson() { ArrayList list = new ArrayList(); for (int i = 0; i < 5; i++) { Person p = new Person(); p.Name = i.ToString(); list.Add(p); } return list; } } }