什么时候必须在C#中使用隐式和显式运算符?

时间:2010-03-03 12:08:47

标签: c# operators implicit explicit

这些运营商的用途是什么?

2 个答案:

答案 0 :(得分:11)

基本上,当您想要提供类型之间的转换时。 LINQ to XML提供了很好的例子......从字符串到XName的隐式转换,所以你可以写:

XName name = "element";

但是从XAttributeint(以及许多其他类型)的显式转换,因此您必须在代码中包含强制转换:

int value = (int) element.Attribute("age");

在提供隐式转换之前要仔细考虑 - 它们很少是个好主意; LINQ to XML使用它们产生了很大的效果,但它们可能令人困惑。即使是明确的用户定义转换也会让那些粗心的读者感到惊讶。

答案 1 :(得分:4)

在执行operator overloading时使用它们。这是MSDN article的链接。