|
|
1
39
就我个人而言,我两者都不使用,而且倾向于使用
更新顶部的链接已断开,请参阅 this answer 在StackOverflow上。 |
|
|
2
78
当它真的是一种
例如
|
|
|
3
12
还有另一个区别。 “Convert”总是处于溢出选中状态,而“cast”可能处于溢出选中状态,具体取决于您的设置和使用的“checked”或“unchecked”关键字。 更明确地说。 考虑代码:
但是:
|
|
|
4
6
并非所有类型都支持转换,例如
因为需要实施 explicit operator . 但是.NET还提供 IConvertible interface |
|
|
5
4
强制转换只是告诉编译器这个对象实际上是一个不同类型的实现,并将其视为新的实现。然而,convert表示这并不是从您试图转换到的内容中继承的,但是有一种固定的方法可以这样做。例如,假设我们将“16”转换为int。“16”是一个字符串,并且不以任何方式从int继承。但是,很明显“16”可以变成int 16。 |
|
|
6
2
再加上我的2c——看来概念上的区别可能有用。我不是专家..: 铸造正在改变代表类型。所以“32”和32L以及32.0f之间的转换似乎是合理的。c#不会自动支持“32”,但大多数动态语言会支持。所以我将使用(长)“32”或(字符串)32L。当我可以的时候。我还有另一条规则——施法应该是圆形的,可折叠的。 转换不必是可折叠的,而且可以简单地创建一个全新的对象。
另一个可以区分的是,只对“IsA”使用casting,而不是对“makeLookLikeA”使用casting。因此,如果您知道字符串来自数据库,但在非官方模式中实际上是int,可以随意使用cast(尽管在本例中,c#希望您使用Convert)。浮子也是如此。但不适用于仅使用强制转换来截断浮点值的情况。这种区别也解释了向下和向上转换的原因——对象总是'IsA',但是类型可能已经被泛化为一个列表。 |
|
|
7
1
有很多的超载
|
|
|
8
0
例如:
结果是c=64和d=65 |
|
|
9
0
string number=“123abc”; 整数;
转换为32(数字);//此调用引发异常 |
|
|
DutChen18 · 如何在C宏中内联触发隐式指针转换? 2 年前 |
|
|
0xDED · 如何将泛型类强制转换为对象的泛型类? 2 年前 |
|
|
Niclas · 变量>-1如何在C中精确求值? 2 年前 |
|
|
Textime · 将Varchar2转换为时间 2 年前 |
|
|
xpt · Go,无法将类型*int32转换为类型*int64 2 年前 |