案例1:我们可以通过以下方式转换类型.....
第一种方式
int someInt = 10;
double someDouble = (double) someInt;
第二种方式相同
int someInt = 10;
double someDouble = Convert.ToDouble(someInt);
案例2:我们可以通过以下方式将某些事物转换为字符串.......
第一种方式
int someInt = 10;
string someString = someInt.ToString();
第二种方式
int someInt = 10;
string someString = someInt.ToString(CultureInfo.InvariantCulture);
现在我的问题是哪一个好?我问这个问题是因为ReSharper总是给我这样的建议,就像两种情况一样。我不应该跟随哪一个。
答案 0 :(得分:3)
int.ToString()
使用Culture.CurrentCulture
作为参数(因此因计算机而不同的结果):如:
someInt.ToString() == someInt.ToString(CultureInfo.CurrentCulture);
答案 1 :(得分:0)
转换变量只是调用显式运算符方法它是语法技巧。通过方法进行转换和转换完全相同或应该是相同的。不同的是特定类如何选择实现它。你可以使一个转换操作符处理null或不处理null它取决于你。
考虑我制作的以下自定义课程。想一想,铸造中发生的一切都可以在方法中完全相同。它只是格式化魔术。
//explicitly convert int to my class
public static explicit operator MyClass(int t)
{
return new MyClass();
}
//static method to convert int to my class
public static MyClass ToMyClass()
{
return new MyClass();
}