小编Ben*_*nny的帖子

C#泛型类型干扰奇怪的行为

请考虑以下代码:

class Program
{
    static void Main(string[] args)
    {
        var a = new A();
        var b = new B();
        Print(a);
        Print(b);
        Console.WriteLine(b.Hello);
        Console.ReadLine();
    }

    static void Print<T>(T t) where T : A
    {
        Console.WriteLine(typeof(T));
        Console.WriteLine(t.GetType());
        Console.WriteLine(t.Hello);
    }
}

public class A
{
    public string Hello { get { return "HelloA"; } }
}

public class B : A
{
    public new string Hello { get { return "HelloB"; } }
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出(.NET FW 4.5)

  • //打印(a)中
  • 一个
  • 一个
  • HelloA
  • //打印(b)中
  • 乙 …

c# generics polymorphism

0
推荐指数
1
解决办法
89
查看次数

标签 统计

c# ×1

generics ×1

polymorphism ×1