我有一个通用类,需要将其限制为只能使用值类型(例如 int、float 等)。我有一个方法,根据类型的测试调用 Parse 方法。例如:
class MyClass<T>
{
...
private static T ParseEntry(string entry)
{
if(typeof(T) == typeof(float))
{
return (T) float.Parse(entry);
}
if(typeof(T) == typeof(int))
{
.... you get the idea
}
}
}
将T限制为
struct
无效,如果可能的话,我真的想避免装箱/拆箱。有什么建议吗?编辑:为了更深入地了解这一点。我注意到我正在开发的库中有两个类具有非常相似的属性/方法等,唯一的区别是数据的基础类型(int或float)。这导致我使用泛型进行设计。唯一的问题是由于调用特定的Parse方法取决于它是浮点数还是整数。我可以通过装箱/拆箱来解决,但如果可能的话,我真的想避免这种情况。