新人请求指导,发现一个方法,标明泛形的,但无须传参,那这T有何用意,意义何在呢

goodgame365 2021-05-21 10:19:52
代码如下:
  public static string OutNull<T>()
{
JObject outjob = new JObject();
JObject job = new JObject();
JArray List = new JArray();
if (typeof(T) == typeof(JArray))
outjob.Add(new JProperty("list", List));
else if (typeof(T) == typeof(JObject))
outjob.Add(new JProperty("data", job));
else if (typeof(T) == typeof(string))
outjob.Add(new JProperty("data", ""));

return JsonDo.JobjectToJson(outjob);
}
...全文
24199 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
meichao9 2022-03-29
  • 打赏
  • 举报
回复

不加泛型调用得显式强制类型转换,加了强制类型转换编译时候不会报错,只有在运行时会出现异常报错,可以算一种安全隐患吧

吃彩虹的羊 2021-08-18
  • 打赏
  • 举报
回复

很明显就不是用来返回int型的呀,人家都定义了list对象和字符串了就偏偏没写int型的?一个简单转json工具类,我觉得挺不错的

圣殿骑士18 2021-05-25
  • 打赏
  • 举报
回复
这种封装毫无意义,谁写的代码?请问,使用泛型的目的是什么?这么封装达到目的了吗?
goodgame365 2021-05-25
  • 打赏
  • 举报
回复
引用 11 楼 泡泡鱼_ 的回复:
[quote=引用 10 楼 goodgame365 的回复:][quote=引用 9 楼 泡泡鱼_ 的回复:]如果它的返回值是直接就返回给前端的,那这个就真的是没有什么实际上的意义……甚至中间那些类型检测返回对应类型的值都没有什么必要。如果是为了统一一下返回空结构,完全可以直接将对应的值直接转进来。如果不纠结这个。给个int入参,然后来个1,2,3什么的也一样 在这个前提下,楼主你是对的。它就真的没什么意义
是返回给前端的,总监的意思,尽量不要用数字,要直观,可能就是基于这点,才用类型吧,OutNull<Jobject>就知道是对象,写成 OutNull(1),为弄清这个1还要转到方法里看代码,总监认为太浪费时间[/quote] 那 Out(new JArray()) Out(new JObject()) Out("") 岂不是更直观? 再要直观点,直接 return "{\"data\":"{}"|"[]"|""}"。还有比这个更直观,更效率的么? 好了,不纠结了。点不在那里。这就是多余凑出来的一段代码[/quote] 前端除了需要输出 data还需输出returnCode和returnMsg啊
goodgame365 2021-05-25
  • 打赏
  • 举报
回复
引用 16 楼 圣殿骑士18 的回复:
这种封装毫无意义,谁写的代码?请问,使用泛型的目的是什么?这么封装达到目的了吗?
应该是达到了,这个封装被引用了88次之多
weixin_53021482 2021-05-24
  • 打赏
  • 举报
回复
能有什么用 看不懂
luj_1768 2021-05-24
  • 打赏
  • 举报
回复
如果你把这段代码上传到Linux社区,版主会把你揪出去打小屁屁的。
goodgame365 2021-05-23
  • 打赏
  • 举报
回复
引用 9 楼 泡泡鱼_ 的回复:
如果它的返回值是直接就返回给前端的,那这个就真的是没有什么实际上的意义……甚至中间那些类型检测返回对应类型的值都没有什么必要。如果是为了统一一下返回空结构,完全可以直接将对应的值直接转进来。如果不纠结这个。给个int入参,然后来个1,2,3什么的也一样 在这个前提下,楼主你是对的。它就真的没什么意义
是返回给前端的,总监的意思,尽量不要用数字,要直观,可能就是基于这点,才用类型吧,OutNull<Jobject>就知道是对象,写成 OutNull(1),为弄清这个1还要转到方法里看代码,总监认为太浪费时间
泡泡鱼_ 2021-05-23
  • 打赏
  • 举报
回复
如果它的返回值是直接就返回给前端的,那这个就真的是没有什么实际上的意义……甚至中间那些类型检测返回对应类型的值都没有什么必要。如果是为了统一一下返回空结构,完全可以直接将对应的值直接转进来。如果不纠结这个。给个int入参,然后来个1,2,3什么的也一样 在这个前提下,楼主你是对的。它就真的没什么意义
yeshou127 2021-05-23
  • 打赏
  • 举报
回复
不错,赞一个
hudi0719 2021-05-23
  • 打赏
  • 举报
回复
参考一下参考一下
泡泡鱼_ 2021-05-23
  • 打赏
  • 举报
回复
引用 10 楼 goodgame365 的回复:
[quote=引用 9 楼 泡泡鱼_ 的回复:]如果它的返回值是直接就返回给前端的,那这个就真的是没有什么实际上的意义……甚至中间那些类型检测返回对应类型的值都没有什么必要。如果是为了统一一下返回空结构,完全可以直接将对应的值直接转进来。如果不纠结这个。给个int入参,然后来个1,2,3什么的也一样 在这个前提下,楼主你是对的。它就真的没什么意义
是返回给前端的,总监的意思,尽量不要用数字,要直观,可能就是基于这点,才用类型吧,OutNull<Jobject>就知道是对象,写成 OutNull(1),为弄清这个1还要转到方法里看代码,总监认为太浪费时间[/quote] 那 Out(new JArray()) Out(new JObject()) Out("") 岂不是更直观? 再要直观点,直接 return "{\"data\":"{}"|"[]"|""}"。还有比这个更直观,更效率的么? 好了,不纠结了。点不在那里。这就是多余凑出来的一段代码
xuzuning 2021-05-21
  • 打赏
  • 举报
回复
返回一个空的 json 结构,空的 对象
wanghui0380 2021-05-21
  • 打赏
  • 举报
回复
这只是一个展示,不是一个实际可用的玩意 对于前端来说一个data端足够。而对于前端 会写防御性的 data= xxx||d.data 都是基本型,一个不会处理null,不会处理“”,不会处理[]的前端,俺们可以直接开掉的,我可以将就你,写这么一个垃圾玩意,BAT会将就你?你调用BAT的代码,有null了,你让BAT给你改??
90e家 2021-05-21
  • 打赏
  • 举报
回复
存在就有必要,一般是为了兼容写的,这样可以有效的避免重复代码,等你代码写道一定高度,你也会觉得泛型在一些场景下的确很好
爱喝茶的助手 2021-05-21
  • 打赏
  • 举报
回复
避免传入不同类型的值写多个方法的情况。 可以看下这个,讲的很清楚 https://blog.csdn.net/kebi007/article/details/77800954
wanghui0380 2021-05-21
  • 打赏
  • 举报
回复
无需纠结,因为没意义,这是一种无可奈何的选择,正常情况是 retrun new {data=obj} 后端只管DDD,model,他不管啥外面的协议 然后前端跟他说,lao zi不会玩一个data 又表示集合,又表示object,又表示string的搞法 所以后端只能无可奈何,一边吐槽前端垃圾,一边写出这么个垃圾玩意来对付了
  • 打赏
  • 举报
回复
有代码自己测试下就知道了, 传入不同类型看返回结果的区别。
石岩Maple 2021-05-21
  • 打赏
  • 举报
回复
你也可以定义成 public static string OutNull(Type type)
石岩Maple 2021-05-21
  • 打赏
  • 举报
回复
意义很明显啊,就是为了获取泛型的类型呀,然后根据类型定义Json结构

111,086

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧