Max*_*ich 30 c# double types type-inference decimal
我不知道对于我想要实现的目的,正确的措辞是什么,所以它可能已经在网上发布.如果是,请善待.
好吧基本上我有这个方法.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
被称为Helpers.IsNull(dr, "UnitWholeSale", 0d)和我得到的错误是"无法从双精度转换为十进制".
现在我知道我可以使用decimal.Zero但有一些方法我可以简单地去0dec或类似的东西?我只是讨厌那些长的快捷方式值(特别是在调用带有20个参数的构造函数时).
Gab*_*abe 70
0m是你怎么说(decimal)0因为m是后缀意味着decimal.
其他后缀f用于float,dfor double,ufor unsigned和lfor long.它们可以是大写或小写,u可以按l任意顺序组合成一个ulong.
虽然后缀不区分大小写,但请记住它在C#语言规范第2.4.4.2节中所说的内容:
作为一种风格问题,建议在编写long类型的文字时使用"L"代替"l",因为很容易将字母"l"与数字"1"混淆.
Ada*_*son 17
0m会给你一个decimal0值.
为了完整起见,
0.0 - double
0f - float
0m - decimal
Run Code Online (Sandbox Code Playgroud)