假设有一个
F#
的定义:type Either<'a,'b> = | Left of 'a | Right of 'b
let f (i : int) : Either<int, string> =
if i > 0
then Left i
else Right "nothing"
在C#代码中使用了函数f:
var a = Library.f(5);
如何对数据构造函数进行模式匹配来匹配结果值a
?类似于:
/*
(if a is Left x)
do something with x
(if a is Right y)
do something with y
*/
a.Match(ifLeft: x => x + 1, ifRight: _ => return null);
。 - ДМИТРИЙ МАЛИКОВ