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

如何在C#中通过UnitsNet获取单位枚举值的缩写?

使用UnitsNet获取单位枚举的缩写

基础实现方式

UnitsNet内置了UnitAbbreviationsCache类来处理单位缩写的获取,无需额外封装类也能直接拿到目标结果:

var myUnit = LengthUnit.Meter;
var myAbbreviation = UnitAbbreviationsCache.Default.GetDefaultAbbreviation(myUnit.GetType(), (int)myUnit);
// 输出结果:"m"

对你实现的UnitImpl的评价

你写的UnitImpl类是合规的,它正确复用了UnitsNet官方提供的UnitAbbreviationsCache来获取默认缩写,这是框架底层推荐的用法之一。可以小优化一下类型转换的写法,把Convert.ToInt32(UnitValue)改成(int)UnitValue,代码更简洁高效。

更便捷的扩展方法实现

如果不想封装类,还可以写一个枚举扩展方法,让调用更直观:

public static class UnitsNetExtensions
{
    public static string GetAbbreviation(this Enum unit)
    {
        return UnitAbbreviationsCache.Default.GetDefaultAbbreviation(unit.GetType(), (int)unit);
    }
}

使用时直接调用扩展方法:

var myUnit = LengthUnit.Meter;
var myAbbreviation = myUnit.GetAbbreviation(); // 输出"m"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:47:35