难以回答的问题,但如果我有:
public class BunnyManager
{
public Bunny<T> GetBunny<T>(string someJson)
{
return new Bunny<T>(someJson);
}
}
public class Bunny<T>
{
T parsedJson { get; set; }
public Bunny<T>(string someJson)
{
if (!string.IsNullOrEmpty(someJson))
parsedJson = ConvertJsonStringToObject<T>(someJson);
}
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我想得到一个没有任何json的Bunny对象,因为json字符串为null,所以我不在乎T是什么.
在这种情况下,我可以创建一个过载或T完全忽略的东西,或者我可以打电话GetBunny<null>或GetBunny<object>?
我想知道解决这个问题的正确方法是什么.
Mag*_*nus 20
您可以拥有泛型继承的非泛型兔子类.
public class BunnyManager
{
public Bunny<T> GetBunny<T>(string someJson)
{
return new Bunny<T>(someJson);
}
public Bunny GetBunny()
{
return new Bunny();
}
}
public class Bunny
{
}
public class Bunny<T> : Bunny
{
T parsedJson { get; set; }
public Bunny(string someJson)
{
if (!string.IsNullOrEmpty(someJson))
parsedJson = ConvertJsonStringToObject<T>(someJson);
}
}
Run Code Online (Sandbox Code Playgroud)