class Program
{
public delegate Person GetClass();
static void Main(string[] args)
{
GetClass getPerson = new GetClass(returnPerson);
Person person = getPerson();
if (person is Student)
{
Console.WriteLine("[" + person + "] is Student");
}
else
{
Console.WriteLine("[" + person + "] not is Student");
}
Console.Read();
}
static Person returnPerson()
{
return new Student("Join", 30, 23);
//return new Person("Smith", 21);
}
}
class Person
{
string name;
int age;
public Person()
{
}
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public override string ToString()
{
return name + " age is:" + age;
}
}
class Student : Person
{
int stuID;
public Student()
{
}
public Student(string name, int age, int stuID):base(name,age)
{
this.stuID = stuID;
}
public int StuID
{
get { return stuID; }
set { stuID = value; }
}
public override string ToString()
{
return base.ToString()+"stuID is :"+stuID;
}
}
C# 委托 协变 实例
最新推荐文章于 2023-01-10 17:56:41 发布