[英]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.