为什么intellisense不能在我的Generic上运行?

Exi*_*tos 0 c# generics

只是做一些关于泛型的阅读.我写了一些小试验......

public interface IAnimal
    {
        void Noise();
    }

    public class MagicHat<TAnimal> where TAnimal : IAnimal
    {
        public string GetNoise()
        {
            return TAnimal.//this is where it goes wrong...
        }
    }
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,即使我在Type上放了一个通用约束,它也不会让我返回TAnimal.Noise()......?

我错过了什么吗?

小智 8

您需要一个可以调用Noise()的对象.

public string GetNoise( TAnimal animal )
{
   animal.Noise()
   ...
}
Run Code Online (Sandbox Code Playgroud)