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