C#递归错误 - 扩展方法

时间:2015-06-12 13:03:59

标签: c# loops methods infinite

我在这里得到一个错误,说该程序无法退出无限循环。

public static class Program 
{
    public static void Main(string[] args)
    {
        Object obj = new Object();
        Console.WriteLine(obj.GetClassName());
    }

    public static string GetClassName(this object value)
    {
        return value.GetClassName();
    }  
}

1 个答案:

答案 0 :(得分:4)

您需要将扩展​​方法更改为:

return obj.GetType().Name;

您的扩展方法正在调用自身,这会导致无限循环/递归问题。