You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#学习疑问:内置值类型(如int、double)是否实现接口?

C#内置值类型的接口实现问题

当然有,C#中的int(对应CLR类型System.Int32)、double(对应System.Double)这类内置值类型,都默认实现了多个常用接口,举几个核心的:

  • IComparable/IComparable<T>:提供值比较能力,比如你调用int.CompareTo(20)或者double.CompareTo(3.14)时,就是在调用这个接口的方法。
  • IEquatable<T>:用于类型安全的相等判断,num.Equals(10)这种写法就是基于这个接口的实现,比直接用==更严谨(避免隐式类型转换带来的问题)。
  • IConvertible:支持不同类型之间的转换,比如int.ToDouble()、double.ToString()这类类型转换操作,底层都依赖这个接口的方法。
  • IFormattable:支持自定义格式的字符串输出,比如double.ToString("C")生成货币格式字符串,就用到了这个接口。

当你把这些值类型的实例赋值给它们实现的接口变量时,确实会触发装箱操作,比如:

int num = 10;
IComparable cmp = num; // 此处发生装箱

内容的提问来源于stack exchange,提问作者HosseinSedghian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:22:09