【发布时间】:2011-05-02 13:11:19
【问题描述】:
我有一个通用类 (C#),
class MyClass<T> where T : struct, IComparable<T>
{
public T filelocation;
}
T 可以是 UInt32 或 UInt64(没有别的)。
我需要将文件位置转换为 long 以在文件中查找...
我已经尝试了以下
long loc = (T)myclass.filelocation;
long loc = (T)(object)myclass.filelocation;
但似乎没有任何效果......
有什么想法吗?
【问题讨论】:
-
如果你有一个只需要 uint 或 ulong 的泛型类/方法,那么你可能在滥用或误用泛型。泛型应该是generic。为什么不只是有一个需要 ulong 的非泛型类? uint 会自动转换为 ulong。
-
我正在使用 PST 文件格式。它有两种格式,ANSI (UInt32) 和 UNICODE (UInt64)。我这样做是为了(希望)减少代码重复
-
@Eric:我走了你的路。我将其重写为不是通用的。