接口是值类型还是引用类型?刚写了个程序,大家都来参考下

webchengping 2013-07-29 06:37:02
网速有点卡 我在2楼上图
...全文
242 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
webchengping 2013-07-29
  • 打赏
  • 举报
回复
我认定是vs中文版翻译有问题 结贴
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 14 楼 caozhy 的回复:
int double 或者你定义的某个类,都实现了ICompareable,你说ICompareable是什么类型?
ICompareable 是接口 ,接口是引用类型这个就是引用类型, 谁能帮我找找msdn的明确说明在哪? 还有 我不是在纠结接口是什么类型(引用类型嘛),就是就事论事而已, 哎 标题搞错了!
threenewbee 2013-07-29
  • 打赏
  • 举报
回复
int double 或者你定义的某个类,都实现了ICompareable,你说ICompareable是什么类型?
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 11 楼 hdt 的回复:
如果你懂错误的原因,只是不明白为何接口为何是引用类型的话? 你只要看看msdn关于装箱部分的帮助就清楚了 装箱是将 值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。 =====>msdn
接口肯定是引用类型的,那那处报错翻译的就是有问题. 或由此值类型实现的任一接口类型的过程。 这个是嘛意思? 据我所知,结构是值类型的,但是如果结构用接口来声明的话就是引用类型了 ,以下举例: interface iA{ } struct a:iA{ } a aa = new a() //值类型 iA iaa = new a() //引用类型
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 7 楼 hdt 的回复:
让代码说话吧 class class3<T>:where T:interface1 { }; 如果这么用 struct a:interface1 {} class3<a> 可以吗?如果可以的话 class1<a> 应该也可以, 你的class1<T>:where class 就出错了
你定义的a是指类型
真相重于对错 2013-07-29
  • 打赏
  • 举报
回复
如果你懂错误的原因,只是不明白为何接口为何是引用类型的话? 你只要看看msdn关于装箱部分的帮助就清楚了 装箱是将 值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。 =====>msdn
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 4 楼 qldsrx 的回复:
接口是引用类型他爸,接口下面可以派生出接口,也可以派生出类,而你这里的T必须是类,不能是接口,因此报错。
报错的原因我懂,不是谈论这个,另外接口也可以派生出接口, 值类型
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 6 楼 liu_ben_qian 的回复:
接口怎么不是引用类型呢,你这个错误不具代表性的
我们知道引用类型和值类型都是可以继承自接口,官方没有明确的说接口是引用类型,不过我也一直认为接口是引用类型的, 这个报错是我偶然发现的,然后写了这段程序
webchengping 2013-07-29
  • 打赏
  • 举报
回复
引用 4 楼 qldsrx 的回复:
接口是引用类型他爸,接口下面可以派生出接口,也可以派生出类,而你这里的T必须是类,不能是接口,因此报错。
那就是说错误提示的翻译错了?
真相重于对错 2013-07-29
  • 打赏
  • 举报
回复
让代码说话吧 class class3<T>:where T:interface1 { }; 如果这么用 struct a:interface1 {} class3<a> 可以吗?如果可以的话 class1<a> 应该也可以, 你的class1<T>:where class 就出错了
wolf_ben 2013-07-29
  • 打赏
  • 举报
回复
接口怎么不是引用类型呢,你这个错误不具代表性的
全栈极简 2013-07-29
  • 打赏
  • 举报
回复
接口当然是引用类型。 你不能说甲喜欢的人都是好人(这里不能得出他不喜欢的人就一定是坏人),然后甲不喜欢乙,乙就不是好人了。况且你的推断是错误的。
qldsrx 2013-07-29
  • 打赏
  • 举报
回复
接口是引用类型他爸,接口下面可以派生出接口,也可以派生出类,而你这里的T必须是类,不能是接口,因此报错。
真相重于对错 2013-07-29
  • 打赏
  • 举报
回复
接口应该算引用类型
webchengping 2013-07-29
  • 打赏
  • 举报
回复
先吃饭,大家讨论下,工作中偶然发现的
webchengping 2013-07-29
  • 打赏
  • 举报
回复

110,561

社区成员

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

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

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