相当于System.Web.UI.WebControl.Unit的字节的c#本机类型

相当于System.Web.UI.WebControl.Unit的字节的c#本机类型,c#,C#,是否有与单位的System.Web.UI.WebControls.Unit相同的字节类型 我设想一个结构,它将字节计数设为长度,并计算两个属性: 最大倍数>=1(B、KB、MB等)的枚举类型 小数,其值在上述倍数中 实现这样的结构并不困难,但我更愿意使用框架中的一些东西 下面我粘贴了一个示例,以更好地解释我的意图 我的提案草案 这样的东西有框架类型吗 或者说它没有任何意义,我错过了大局?不,在.Net框架中没有这样的类型,也不太可能有这样的类型(部分原因是M/K乘数的争议性——它至少有3种含

是否有与单位的
System.Web.UI.WebControls.Unit
相同的字节类型

我设想一个结构,它将字节计数设为长度,并计算两个属性:

  • 最大倍数>=1(B、KB、MB等)的枚举类型
  • 小数,其值在上述倍数中
实现这样的结构并不困难,但我更愿意使用框架中的一些东西

下面我粘贴了一个示例,以更好地解释我的意图

我的提案草案

这样的东西有框架类型吗


或者说它没有任何意义,我错过了大局?

不,在.Net框架中没有这样的类型,也不太可能有这样的类型(部分原因是M/K乘数的争议性——它至少有3种含义:程序员、SI和营销)

您可以研究其他两种方法:

  • 单独列报数据。也就是说,您可以为您的类型(类型只包含像
    12333字节这样的数据)和格式
    String.format(“M作为自定义格式-{0:M}”,valueOfMyType)
  • 查看有关“度量单位”主题的其他问题(参见此处的搜索结果)。也可以看看F#是如何实现的,以获得更多灵感。如果您有许多类似的“测量单位”值,如质量、速度、体积、温度,则此方法可能很有用

您有什么问题吗?我想知道框架中是否已经有类似的内容谢谢。据我所知,您是说用表示逻辑实现一个IFormattable类,是吗?@LuisFilipe-是的-对我来说,您的目标似乎只是格式化。我无法想象为什么“字节计数”的数据部分的行为会不同于
Unit
的情况,在这种情况下,“百分比”和“像素”在数据级别上的含义会非常不同。
public struct ByteUnit
{
   public long ByteCount {get; set; }
   public ByteMultiple Multiple {get; }
   public decimal ByteCountInMultiple {get; }
}