假设我想要一个带有任何数字的方法,是否有可以使用的基类(或其他一些概念)?
据我所知,我必须为所有不同的数字类型(Int32,Int16,Byte,UInt32,Double,Float,Decimal等)进行重载.这看起来非常乏味.或者使用类型"对象"并抛出异常,如果它们不可转换或可分配给double - 这是非常糟糕的,因为它意味着没有编译时间检查.
更新: 好的感谢您的评论,你是对的Scarecrow和Marc,实际上宣称它为Double实际上除了Decimal以外的所有人都适用.
所以我正在寻找的答案是Double - 它在这里就像一个基类,因为大多数数字类型都可以分配给它.(我猜Decimal不能分配给Double,因为它可能会变得太大.)
public void TestFormatDollars() {
int i = 5;
string str = FormatDollars(i); // this is OK
byte b = 5;
str = FormatDollars(b); // this is OK
decimal d = 5;
str = FormatDollars(d); // this does not compile - decimal is not assignable to double
}
public static string FormatDollars(double num) {
return "$" + num;
}
Run Code Online (Sandbox Code Playgroud)