public bool SetEquals(TwoValues v) { return X == v.X ? Y == v.Y : X == v.Y && Y == v.X; }
public bool SetEquals(TwoValues v) { return(X == v.X ? Y == v.Y : X == v.Y && Y == v.X); }
// Point: 引数に対する高度な制約。 static OrderedTwoValues Sort(TwoValues v) where Sort(v).SetEquals(v)