sách gpt4 ăn đã đi

c# - 这个对象是一个整型。我可以在不到五行的代码中得到它的值(value)吗?

In lại 作者:太空狗 更新时间:2023-10-30 00:01:11 26 4
mua khóa gpt4 giày nike

我有一个数据读取器。我想将其中的值与值 42 进行比较。我知道它是一个整数类型(例如,MySQL 调用的 TỔNG QUANTINYINTNHỎTRUNG BÌNHLỚNJUMBODELUXEINT 等)。我不想将实际类型硬连接到 C# 代码中。我想到的最好的是

object x = reader.GetValue(i);
uint k = x is byte ? (byte) x
: x is short ? (uint) (short) x
: x is ushort ? (ushort) x
: x is int ? (int) (int) x
: (uint) x;
if (k == 42) { ... }

这看起来非常冗长。我尝试使用 Equals,但具有相同值的不同整数类型在测试时似乎并不相等。

有没有更好的办法?

câu trả lời hay nhất

只是检查 Convert.ToUInt32(object) ... 是的,它工作正常:

sử dụng Hệ thống;

class Test
{
static void Main()
{
Check((byte)10);
Check((short)10);
Check((ushort)10);
Check((int)10);
Check((uint)10);
}

static void Check(object o)
{
Console.WriteLine("Type {0} converted to UInt32: {1}",
o.GetType().Name, Convert.ToUInt32(o));
}
}

换句话说,您的代码可以是:

object x = reader.GetValue(i);
uint k = Convert.ToUInt32(x);
if (k == 42) { ... }

或者,鉴于所有 đơn vị 都可以表示为 long,如果您使用的是数据读取器,您可以尝试 reader.GetInt64(i) 吗?我不知道转换是否会为您完成,但可能值得一试。

关于c# - 这个对象是一个整型。我可以在不到五行的代码中得到它的值(value)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/631994/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress