Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候我们必须在C#中使用隐式和显式运算符?_C#_Operators_Implicit_Explicit - Fatal编程技术网

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

什么时候我们必须在C#中使用隐式和显式运算符?,c#,operators,implicit,explicit,C#,Operators,Implicit,Explicit,这些运算符的用途是什么?执行此操作时使用它们。这里有一个指向。的链接,基本上是在您希望提供类型之间的转换时。LINQtoXML提供了很好的示例。。。有一个从字符串到XName的隐式转换,因此您可以编写: XName name = "element"; 但是有一个从XAttribute到int(以及许多其他类型)的显式转换,因此您必须在代码中包含强制转换: int value = (int) element.Attribute("age"); 在提供隐式转换之前要仔细考虑——它们很少是一个好主

这些运算符的用途是什么?

执行此操作时使用它们。这里有一个指向。

的链接,基本上是在您希望提供类型之间的转换时。LINQtoXML提供了很好的示例。。。有一个从字符串到XName的隐式转换,因此您可以编写:

XName name = "element";
但是有一个从
XAttribute
int
(以及许多其他类型)的显式转换,因此您必须在代码中包含强制转换:

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

在提供隐式转换之前要仔细考虑——它们很少是一个好主意;LINQtoXML非常有效地使用了它们,但它们可能会令人困惑。即使是明确的用户定义转换也会让粗心的读者感到惊讶。

几乎大多数时候,我都避免将它们用作库设计师(除非我确信它们不会被误用和投诉)。