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

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

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

XName name = "element"; 

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

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

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

它们在执行运算符重载时使用 。 这是MSDN文章的链接。