我不知道我想要实现的目标的正确措辞是什么,因此它可能已经发布在网上。如果是的话请善待。
好吧,基本上我有这个方法。
public static T IsNull<T>(IDataReader dr, String name, T nullValue)
{
return Helpers.IsNull(dr, dr.GetOrdinal(name), nullValue);
}
public static T IsNull<T>(IDataReader dr, Int32 index, T nullValue)
{
if (dr.IsDBNull(index))
{
return nullValue;
}
else
{
return (T)dr.GetValue(index);
}
}
被称为Helpers.IsNull(dr, "UnitWholeSale", 0d)
我收到的错误是“无法从双精度转换为十进制”。
现在我知道我可以使用decimal.Zero
但有什么方法可以让我简单地使用 0dec 或类似的方法吗?我只是讨厌那些长快捷方式值(特别是当您调用具有 20 个参数的构造函数时)。
0m
就是你说的(decimal)0
因为m
是后缀,意思是decimal
.
其他后缀是f
for float
, d
for double
, u
for unsigned
, and l
for long
。它们可以是大写或小写,并且u
可以与l
以任一顺序制作ulong
.
尽管后缀不区分大小写,但请记住 C# 语言规范第 2.4.4.2 节中的内容:
作为风格问题,建议在编写 long 类型文字时使用“L”而不是“l”,因为很容易将字母“l”与数字“1”混淆。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)