C# 将 T 转换为 long

发布于 2024-11-04 05:34:06 字数 377 浏览 3 评论 0原文

我有一个泛型类(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;

但似乎没有任何效果...

有什么想法吗?

I have a generic class (C#),

class MyClass<T> where T : struct, IComparable<T>
{
    public T filelocation;
}

T can be either UInt32 or UInt64 (nothing else).

I need to convert filelocation to a long to seek in a file...

I have tried the following

long loc = (T)myclass.filelocation;

long loc = (T)(object)myclass.filelocation;

But nothing seems to work...

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哥,最终变帅啦 2024-11-11 05:34:06

调用Convert.ToInt64。

写入 (object)fileLocation 会创建一个装箱的 UInt32
装箱值类型只能拆箱到它们的值原始值类型,因此无法一步将其转换为long
您可以编写 (long)(ulong)fileLocation,但出于同样的原因,对于 uint 会失败。

Call Convert.ToInt64.

Writing (object)fileLocation creates a boxed UInt32.
Boxed value types can only be unboxed to their original value types, so you cannot cast it in one step to long.
You could write (long)(ulong)fileLocation, but that will fail for a uint for the same reason.

请恋爱 2024-11-11 05:34:06

尝试Convert.ToInt64

long loc = Convert.ToInt64(myclass.filelocation);

Try Convert.ToInt64.

long loc = Convert.ToInt64(myclass.filelocation);
你曾走过我的故事 2024-11-11 05:34:06

您可以使用 TryParse:

long lng;
int testNum = 55;
long.TryParse(testNum.ToString(),out lng);

You may use TryParse:

long lng;
int testNum = 55;
long.TryParse(testNum.ToString(),out lng);
无声静候 2024-11-11 05:34:06

根据您的类定义,如果我写类似

public MyClass<long> myclass = new MyClass<long>();
    public long returnLong() 
            {
                return myclass.filelocation;
            }

myclass.fileLocation 的内容,则默认返回 long

with your class definition if i write something like

public MyClass<long> myclass = new MyClass<long>();
    public long returnLong() 
            {
                return myclass.filelocation;
            }

myclass.fileLocation return long by defult

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文