c# - 在c#中返回与类相同类型的对象?
问题描述
我有一个可能有很多孩子的基础班。我有一个方法需要返回与类中的一个相同的类型(即 A 类返回 A 类型的对象,B 类返回 B 类型的对象,等等)。有没有一种好方法不是在每个类上声明相同的方法(我将来可能需要一些类似的方法,这个方法可能会有一些变化)。目前,我在基类中有一个静态泛型方法。
public static T FromJson<T>(string json) where T : IHttpModel =>
JsonConvert.DeserializeObject<T>(json, Converter.Settings);
这是来自 quicktype.io 的代码,但我可能需要更改它。
解决方案
如果我正确理解了您的任务,您可以将基类声明为泛型并声明子类(如果您没有多级层次结构)将类型本身传递给泛型参数:
class Base<T> where T : IHttpModel
{
public static T FromJson(string json)=> JsonConvert.DeserializeObject<T>(json, Converter.Settings);
}
class A : Base<A>, IHttpModel
{
}
A x = A.FromJson("");
推荐阅读
- android - 如何通过 ADB 在 DPs 中查找设备的尺寸
- acumatica - 保存数据后,数据必须稳定且不可通过单击网格中的删除按钮删除。有人可以建议吗?
- javascript - Vuejs 2.x单击非ul链接时如何删除活动类
- java - 我在哪里可以获得可靠的熵源(真正的随机性字节 [])?
- mysql - MySQL UPDATE 查询不更新所有列?
- oracle - set_block_property 中的 AND 运算符
- python - 重采样 MultiIndex
- r - 从其他data.frame R分配data.frame列类
- php - 更改 Laravel Unisharp 文件管理器保存位置
- bootstrap-4 - PHPMailer 发送标签和