我最近发现了这段代码:
public static implicit operator XElement(XmlBase xmlBase) { return xmlBase.Xml; }
是什么static implicit operator意思?
static implicit operator
这是一个 转换运算符 。这意味着您可以编写以下代码:
XmlBase myBase = new XmlBase(); XElement myElement = myBase;
编译器不会抱怨!在运行时,将执行转换运算符 -myBase作为参数传入,并返回一个有效XElement的结果。
myBase
XElement
作为开发人员,这是您告诉编译器的一种方式:
“尽管这些看起来像两种完全不相关的类型,但实际上有一种方法可以从一种转换为另一种;让我来处理如何做到这一点的逻辑。”