我们可以使用泛型方法调用抽象类的静态方法吗?

问题描述

这个问题分为两部分,但首先是一些示例代码

public abstract class Animal
{
    public static string Sound_Made()
    {
        return "UnkNown"
    }
}

public class Dog()
{
    public static string Sound_Made()
    {
        return "Woof"
    }
}

public class Cat()
{
    public static string Sound_Made()
    {
        return "Meow"
    }
}

请注意,Sound_made是静态的,因为它不依赖于实例。

我试图使通用函数具有以下形式:

public string Sound<T>()
{
    if (typeof(T).isSubclassOf(Animal))
    {
        return T.sound_Made() // This doesn't work since T is generic 
    }
    else
    {
        return "This is not an animal."
    }
}

我也尝试使用:public string Sound<T>() where T : Animal,但这不允许我为其他类添加功能,为了简化问题我删除了这些功能

在验证它们在所述通用函数内扩展了动物类之后,我怎么可能在通用函数调用这些函数

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)