簡體   English   中英

如何在C#中獲得特定運算符的功能?

[英]How can i obtain in C# a specific operator's function?

是否有可能獲得C#運算符背后的功能? 例如在F#中你可以做到

let add = (+);;

val add : (int -> int -> int)

是否可以在c#中執行以下操作:

Func<int, int, int> add = (+);

要么

Func<int, int, int> add = Int32.(+)

您可以使用lambda表達式:

Func<int, int, int> func = (val1, val2) => val1 + val2;

這是一種間接的方式來做你想要的:

Func<int, int, int> add = (int a, int b) => a + b;

反映時,可以看出F#不會直接訪問Int32.operator+ (這可能是不可能的),但是上面的C#代碼只是使用內部委托類型( Microsoft.FSharp.Core.FastFunc )。

要添加到其他答案,添加int是由CIL add指令完成的,而不是方法調用,因此沒有任何意義可以獲得“實際的MethodInfo ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM