隐式Vs显式转换

时间:2013-04-27 15:55:18

标签: c# typeconverter

我做了在线评估,我正在努力了解结果,以下是我已经做过的一些问题:

Get enum value from string

Change to method declaration

enter image description here

所以问题是:

我也把这个部分正确,在阅读了关于这个主题之后,我会选择A和D选项,你们可以确认一下吗?

非常感谢。

Marco

1 个答案:

答案 0 :(得分:1)

隐式转换不需要强制转换:

int a = 10;
long b = a;

显式转换 需要演员:

long a = 10;
int b = (int)a;

定义(不调用)隐式转化,请使用implicit关键字:

public static implicit operator MyOther(MyThis obj);

定义显式转化,请使用explicit关键字:

public static explicit operator MyOther(MyThis obj);

通常,当信息可能通过转换丢失或使用异常时,可以使用显式转换。例如,将64位long整数转换为32位int整数可能会丢失32个最重要的信息位。

所以,我确信A是真的,B,C和E都是假的。我不明白D.的问题。如果他们的意思是调用隐式转换,那么它就是假的。如果它们意味着定义隐式转换,那么它就是真的。