我正在编写一个使用不同类型的整数运行的软件(uint,short,ushort,byte等)。问题是这些数字的类型可能会改变,或者在某些情况下需要不同的这些类型的组合。问题是:处理这种情况的最佳做法是什么?我可以考虑使用#define
或使类通用。但是对于泛型类型没有任何合适的约束。
编辑:整数用于不同硬件的配置文件中。它们可能使用不同的字节序或不同类型的整数。
答案 0 :(得分:5)
使用泛型,您可以在此处使用的最佳约束是:struct
,这不是非常严格的限制并且不会让您访问任何有用的内容。如果问题是运营商,那么各种各样的黑客攻击; MiscUtil提供操作员支持泛型,或dynamic
也可以工作(几乎同样快,只要你没有使用Nullable<T>
)。
如果您需要编译时间,using
别名可能会有所帮助,即(在每个文件中)
using Number = System.Int32;
答案 1 :(得分:1)
不能使用这样的泛型来抽象值类型,没有为您提供任何有用功能的公共基础。您最好围绕.NET中的值类型创建自己的结构,并对它们进行编码以使运算符相互协作。显然,你对这些结构的处理取决于你选择给他们的行为。
使用这些包装结构,您还可以定义一个公共基础,为您提供有用的东西。