111,128
社区成员
发帖
与我相关
我的任务
分享
static T PrintClass<T>(T t) where T : Base
{
Sub1 s1; Sub2 s2;
if (t is Sub1)
{
s1 = (Sub1)(Object)t;
s1.Name = "小李";
s1.Age = 17;
s1 = (Sub1)(Object)t;
s1.Weight = 120;
return (T)(Object)s1;
}
else
{
s2 = (Sub2)(Object)t;
s2.Name = "小王";
s2.Age = 17;
s2 = (Sub2)(Object)t;
s2.Height = 175;
return (T)(Object)s2;
}
}
static void Main(string[] args)
{
Sub1 s1 = new Sub1();
PrintClass(s1);
Console.WriteLine(s1.Weight);
Sub2 s2 = new Sub2();
PrintClass(s2);
Console.WriteLine(s2.Height);
Console.ReadKey();
}
}
public class Base
{
public string Name
{ set; get; }
public int Age
{ set; get; }
}
public class Sub1 : Base
{
public int Weight
{ set; get; }
}
public class Sub2 : Base
{
public int Height
{ set; get; }
}

自顶一下。