Как-то я прощелкал выход C# 8, а это, между прочим, событие!
- Во-первых, в наш обижатник наконец-то завезли паттерн-матчинг. Не, не вот это вот убожество на if ... else, а настоящий:
static Quadrant GetQuadrant(Point point) => point switch
{
(0, 0) => Quadrant.Origin,
var (x, y) when x > 0 && y > 0 => Quadrant.One,
var (x, y) when x < 0 && y > 0 => Quadrant.Two,
var (x, y) when x < 0 && y < 0 => Quadrant.Three,
var (x, y) when x > 0 && y < 0 => Quadrant.Four,
var (_, _) => Quadrant.OnBorder,
_ => Quadrant.Unknown
};По мимо этого, внезапно завезли дефолтную имплементацию интерфейсов
interface IDefaultInterfaceMethod
{
public void DefaultMethod()
{
Console.WriteLine("I am a default method");
}
}И вот как-то так получается, что додиез медленно, но верно превращается... в скалу)) Вот только если в ЯП сына маминой подруги совсем другая модель выполнения и система типов, то в C#, естественно, ничего менять не стали, из-за чего все FP-фичи языка получаются немного куцыми и оставляющими неприятное послевкусие(почему хаскелю можно, а мне нет😢).
Но, конечно, спасибо и на этом. Все равно приятно