Можно ли упростить блок trycatch? - PullRequest
0 голосов
/ 21 января 2020

Иногда кажется, что блок try catch - это просто дополнительная область вокруг уже существующей области.

Оригинал:

public void Method()
{
    try
    {
        // do something
        ...
    }
    catch (CustomException e)
    {
        DoSomethingWithCustomException(e);
    }
    catch (Exception e)
    {
        DoSomethingWithException(e);
    }
}

Упрощено:

public void Method()
{
    // do something
    ...
    catch (CustomException e) => DoSomethingWithCustomException(e); 
    catch (Exception e) => DoSomethingWithException(e); 
}

В По моему мнению, «попробовать» часть блока не имеет смысла, если вы используете его для всего объема. И вы можете использовать оригинальный синтаксис рядом с этим. Этот синтаксис может быть полезен в foreach или любом другом l oop.

Так возможно ли включить такой синтаксис?

1 Ответ

2 голосов
/ 21 января 2020

Так возможно ли включить такой синтаксис?

Не в текущей версии C#. Вы всегда можете предложить языковую функцию здесь , но сначала выполните поиск существующих предложений, чтобы увидеть, было ли оно уже предложено.

Быстрый поиск «улова» в вопросах привел к этому почти идентичному предложению:

https://github.com/dotnet/csharplang/issues/908

Обратите внимание, что у него есть 1 ответ и 15 отрицательных голосов. Есть только один комментарий к нему, но он дает по крайней мере некоторую обратную связь относительно жизнеспособности функции.

Вы также можете посмотреть на сторонние библиотеки, такие как PostSharp , которые могут внедрить обработку исключений на уровне метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...