Static Type cant be used as type arguments静态类型混乱
但
Extension Method should be in a Static class
我有一个类piece
,所以我可以在我的代码
现在创建List<piece>
,当我尝试创建一个扩展,并问我创建类为静态。但如果我这样做,不能创建List<piece>
。所以我在这里处于递归困境。
正如你所看到的,我试图克隆我的作品。
public class piece
{
public int height { get; set; }
public int width { get; set; }
public int[] shape { get; set; }
public int quality { get; set; }
public int x { get; set; }
public int y { get; set; }
public static T CloneJson<T>(this T source)
{
// Don't serialize a null object, simply return the default for that object
if (Object.ReferenceEquals(source, null))
{
return default(T);
}
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(source));
}
}
那么,处理这种情况的正确方法是什么?
我有我的课程正常工作。我尝试添加克隆功能并找到该扩展方法。那就是当混乱开始的时候,是的,我不太熟悉扩展或实例方法。我试图让它工作
我的猜测是创建扩展作为一种方法,但我不知道该怎么做。
为什么'piece'类中的这个方法开始?它与这种类型无关。 – Servy
你在做什么是没有意义的。如果你想要一个像你想创建的'扩展方法'一样的方法,添加一个* instance *方法。如果你真的想要一个通用的扩展方法,把它放在另一个静态类 - 它与这个没有任何关系。 –
创建一个不同的类,使其成为静态的,将您的扩展方法放在那里。 – juharr