想象一下,如果你有如下例子:
public static implicit operator Deal(string dealAsXml) { //convert the xml into Deal object }
上面的隐式运算符可以帮助您将Xml格式的交易转换/转换为Deal Object.
通常当您右键单击某个方法时,可以在其上使用“查找用法”(或Alt F7),这非常有用,隐式运算符是否有类似内容?
我认为这是在可能的情况下使用Extensions方法的另一个原因.
我认为理论上编译器可能会错过一个案例,如果它可以使用不同的隐式运算符(或切换到方法的“对象”类型重载),但它往往适用于我的用法.我确信有更好的解决方案,但到目前为止它对我有用.
编辑:刚刚思考并测试了它.将隐式运算符标记为[已废弃]实际上会在您使用它的任何地方产生编译器警告!我想这将抓住那些存在其他有效重载的极端情况,你可能完全删除了隐式运算符.