编写显式转换的括号在哪里?

时间:2017-06-03 01:05:38

标签: c#

为什么显式转换就像

一样
int operand = 1;
byte result = (byte)operand;

而不是

int operand = 1;
byte result = byte(operand);

前者中byte被视为操作员吗?

后者中的byte被视为一种方法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

是的,它确实是一个(一元)运营商。您甚至可以使用以下语法创建自己的语法:

public static explicit operator MyType(OtherType t)
{
    // return instance of MyType
}

答案 1 :(得分:1)

它写在参数内部。它来自C / C ++。没有名为byte的方法。它是由.NET定义的显式转换。 byteSystem.Byte的C#关键字/别名。