【发布时间】:2015-01-06 13:24:20
【问题描述】:
我现在正在学习 C#。本教程没有明确说明在重载转换运算符时何时使用关键字implicit 或explicit。
它提供的例子是这样的:
当
Class1包含int类型的字段并且Class2包含double类型的字段时,我们应该定义从Class2到Class1的显式转换,以及从@987654329 的隐式转换@到Class2。
教程没有说明如果我使用了错误的关键字会发生什么。
但是如果Class1 包含一个复杂的子类,而Class2 包含一个不同的子类,我应该在implicit 和explicit 之间使用哪个关键字?谁能给个明确的解释?非常感谢。
【问题讨论】:
-
我不认为这是完全重复的。一个问题是为什么 float 到 double 隐式转换和 double 到 float 显式转换。虽然链接问题的答案对提问者很有价值,但答案并不准确。
-
是的,“重复”真的很糟糕!
-
我同意。我不会说它是重复的。另一个问题解释了如何做到这一点,而这个问题是关于何时可能有用。
标签: c# type-conversion overloading