Сообщение Re[8]: Introducing C# Source Generators от 04.05.2020 4:33
Изменено 04.05.2020 4:34 _NN_
Re[8]: Introducing C# Source Generators
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, _NN_, Вы писали:
_NN>>Здравствуйте, varenikAA, Вы писали:
AA>>>Но C#(не удержусь), движется по скользому пути — добавляет в компилятор кучу фичей имеющих неоднозначный смысл: например, два вида switch — один конструкция(старое), другой выражениие(новое), причем ограниченное функциями возврата, т.е. только return из функции, но не var x = switch.
_NN>>Кто это вам сказал ?
_NN>>https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression
AA>_
_NN>> Directions.Left => Orientation.West,
AA>А если return вместо => ?
Нет проблем
https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0ATEBqAPgAQGYACfARiVICZiBlAdwEsAXMACwFEEBDAWwAcANjACwAKADe44jNIkYAOwCuvYgBFGsMM0YQFAZ2mypY2WeIBVfmiPn1Eegpum7xAEqMA5m2bPXxABkYADNmW2IAX3FwomJFFWIAeShGRWZuHT1wk38AOWhmNj9XWgglQuK7Dm59X3CzAHUYWvCosRiSckpk1IV0zIVibgAKAEps+tkAN24oYgxNGG1dQYBedUXlvX0AOg9vZgBuesmZfAB2YmGFrQHifSZWNlPiHP9ZDVuV3atiVYA+JIpNIZFY7fJQCovMyfJYDXb7Hx/QE9EEDHbVWqVd6wrYGHZqBxrFHAvqgvQ7UrlIrQj6beE7IKhZFA3r9MFNLEvCKjY4uGRtCJAA=
AA>Здравствуйте, _NN_, Вы писали:
_NN>>Здравствуйте, varenikAA, Вы писали:
AA>>>Но C#(не удержусь), движется по скользому пути — добавляет в компилятор кучу фичей имеющих неоднозначный смысл: например, два вида switch — один конструкция(старое), другой выражениие(новое), причем ограниченное функциями возврата, т.е. только return из функции, но не var x = switch.
_NN>>Кто это вам сказал ?
_NN>>https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression
AA>_
_NN>> Directions.Left => Orientation.West,
AA>А если return вместо => ?
Нет проблем
public static class SwitchExample
{
public enum Directions
{
Up,
Down,
Right,
Left
}
public enum Orientation
{
North,
South,
East,
West
}
public static Orientation a()
{
var direction = Directions.Right;
return (direction switch
{
Directions.Up => Orientation.North,
Directions.Right => Orientation.East,
Directions.Down => Orientation.South,
Directions.Left => Orientation.West,
});
}
}
https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0ATEBqAPgAQGYACfARiVICZiBlAdwEsAXMACwFEEBDAWwAcANjACwAKADe44jNIkYAOwCuvYgBFGsMM0YQFAZ2mypY2WeIBVfmiPn1Eegpum7xAEqMA5m2bPXxABkYADNmW2IAX3FwomJFFWIAeShGRWZuHT1wk38AOWhmNj9XWgglQuK7Dm59X3CzAHUYWvCosRiSckpk1IV0zIVibgAKAEps+tkAN24oYgxNGG1dQYBedUXlvX0AOg9vZgBuesmZfAB2YmGFrQHifSZWNlPiHP9ZDVuV3atiVYA+JIpNIZFY7fJQCovMyfJYDXb7Hx/QE9EEDHbVWqVd6wrYGHZqBxrFHAvqgvQ7UrlIrQj6beE7IKhZFA3r9MFNLEvCKjY4uGRtCJAA=
Re[8]: Introducing C# Source Generators
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, _NN_, Вы писали:
_NN>>Здравствуйте, varenikAA, Вы писали:
AA>>>Но C#(не удержусь), движется по скользому пути — добавляет в компилятор кучу фичей имеющих неоднозначный смысл: например, два вида switch — один конструкция(старое), другой выражениие(новое), причем ограниченное функциями возврата, т.е. только return из функции, но не var x = switch.
_NN>>Кто это вам сказал ?
_NN>>https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression
AA>_
_NN>> Directions.Left => Orientation.West,
AA>А если return вместо => ?
Нет проблем
https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0ATEBqAPgAQGYACfARiVICZiBlAdwEsAXMACwFEEBDAWwAcANjACwAKADe44jNIkYAOwCuvYgBFGsMM0YQFAZ2mypY2WeIBVfmiPn1Eegpum7xAEqMA5m2bPXxABkYADNmW2IAX3FwomJFFWIAeShGRWZuHT1wk38AOWhmNj9XWgglQuK7Dm59X3CzAHUYWvCosRiSckpk1IV0zIVibgAKAEps+tkAN24oYgxNGG1dQYBedUXlvX0AOg9vZgBuesmZfAB2YmGFrQHifSZWNlPiHP9ZDVuV3atiVYA+JIpNIZFY7fJQCovMyfJYDXb7Hx/QE9EEDHbVWqVd6wrYGHZqBxrFHAvqgvQ7UrlIrQj6beE7IKhZFA3r9MFNLEvCKjY4uGRtCJAA=
AA>Здравствуйте, _NN_, Вы писали:
_NN>>Здравствуйте, varenikAA, Вы писали:
AA>>>Но C#(не удержусь), движется по скользому пути — добавляет в компилятор кучу фичей имеющих неоднозначный смысл: например, два вида switch — один конструкция(старое), другой выражениие(новое), причем ограниченное функциями возврата, т.е. только return из функции, но не var x = switch.
_NN>>Кто это вам сказал ?
_NN>>https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/switch-expression
AA>_
_NN>> Directions.Left => Orientation.West,
AA>А если return вместо => ?
Нет проблем
public static class SwitchExample
{
public enum Directions
{
Up,
Down,
Right,
Left
}
public enum Orientation
{
North,
South,
East,
West
}
public static Orientation a()
{
var direction = Directions.Right;
return direction switch
{
Directions.Up => Orientation.North,
Directions.Right => Orientation.East,
Directions.Down => Orientation.South,
Directions.Left => Orientation.West,
};
}
}
https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0ATEBqAPgAQGYACfARiVICZiBlAdwEsAXMACwFEEBDAWwAcANjACwAKADe44jNIkYAOwCuvYgBFGsMM0YQFAZ2mypY2WeIBVfmiPn1Eegpum7xAEqMA5m2bPXxABkYADNmW2IAX3FwomJFFWIAeShGRWZuHT1wk38AOWhmNj9XWgglQuK7Dm59X3CzAHUYWvCosRiSckpk1IV0zIVibgAKAEps+tkAN24oYgxNGG1dQYBedUXlvX0AOg9vZgBuesmZfAB2YmGFrQHifSZWNlPiHP9ZDVuV3atiVYA+JIpNIZFY7fJQCovMyfJYDXb7Hx/QE9EEDHbVWqVd6wrYGHZqBxrFHAvqgvQ7UrlIrQj6beE7IKhZFA3r9MFNLEvCKjY4uGRtCJAA=