2014-04-08 65 views
13

我偶然發現可以在F#中定義自定義運算符。另外,我相信可以在C#中重用F#代碼。在C#中使用自定義的F#操作符?

是否有可能在F#中創建自定義運算符,在C#中引用該項目,然後在C#中重新使用該運算符?例如,假設我要將F#中的.?運算符定義爲某些東西,那麼我可以以某種方式在C#項目中重用它嗎?

+5

正如答案所指出的那樣,您可以,但是您將只能從C#將其用作方法,當然不是操作員。 – Mau

+1

恥辱,但它必須做。謝謝;) – EvilBeer

回答

16

自定義運算符可以在C#中使用得很好。這些名稱是自動生成的,格式爲op_<symbol...>(請參閱MSDN上的Overloaded Operator Names)。

例如

let (|?) a b = ... 

將可作爲op_BarQmark

但是,正如Mau在他的評論中指出的那樣,您只能從C#中作爲方法使用它,而不是運算符

+0

@Benjol:關於你的編輯,我認爲很明顯基於它們在C#中不作爲操作符出現的名字(Mau在他的評論中表示:「如答案所指出的那樣_」)。但是,我認爲把它明確說明並不難。 – Daniel

+0

感謝您的迴應:) – EvilBeer

相關問題