OneOf - F#의 discriminated과 유사한 유니온

C#은 현대 언어가 가지고 있는 Rust언어의 유니온 형식을 지원하지 않습니다. 이 라이브러리는 유니온 형식을 C#에서 사용할 수 있도록 합니다.

OneOf<string, ColorName, Color> backgroundColor = ...;
Color c = backgroundColor.Match(
    str => CssHelper.GetColorFromString(str),
    name => new Color(name),
    col => col
);
_window.BackgroundColor = c;

3 Likes
using OneOf;

OneOf<string, int> something = 5;

var result = something.Match(str => str, num => num.ToString());
Console.WriteLine(result);

잘 되는군요! 제공하는 메소드 이름으로 보아 함수형 언어의 그것에 영향을 받은 것으로 보입니다.

2 Likes