Информация об изменениях

Сообщение Re[7]: [Ann, C#6] Состояние для VS2015 preview от 25.11.2014 19:42

Изменено 25.11.2014 19:43 agat50

Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, agat50, Вы писали:


A>>http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6504697-block-code-as-value-another-syntax-for-semicolon

A>>Ага, хорошо бы.
S>А нафига? Ну, кроме как "в других языках есть"?

S>Не, серьёзно, зачем портить язык, добавляя 100500й способ сделать то же самое, только на пару символов короче? Не, для write-only кода, который никогда читать не будут, а сразу выбросят и перепишут, оно может и удобно.


S>Для нормального человека в чём кайф ловить разницу между

S>
S>public int F(int a) =>
S>(
S>    Console.WriteLine(a);
S>    a + 1
S>)
S>// и
S>public int F(int a)
S>{
S>    Console.WriteLine(a);
S>    return a + 1;
S>}
S>


Нафиг, согласен.

S>?


A>> Ну возвращать последнее выражение видимо уже невозможно, поведение сильно поменяет. А так конечно локальных функций нормальных не хватает иногда.

S>
S>Func<int, int> x = i => { ... };
S>

S>?

И это писать в каждом таком применении (а там может быть совсем не инт а что-то монстрообразное). Ну если пример с if чисто чтобы был для описания, то ситуация вида создал переменную, создал ресурс, записал в переменную, закрыл ресурс — ну просто на каждом шагу. Приходится постоянно писать отдельно объявление и присвоение из-за областей видимости. В объявлении соотвественно хрен напишеш var. Хорошо ещё решарпеп помогает быстро var менять на точный класс.

int a = 
 lock(dataInstance) 
 { 
 return dataInstance.Member1; 
 };


vs
int a = (Func<int>)(() => {lock(dataInstance) 
 { 
 return dataInstance.Member1; 
 };})();


Мне очевидно что первое короче не на "два символа".
Re[7]: [Ann, C#6] Состояние для VS2015 preview
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, agat50, Вы писали:


A>>http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6504697-block-code-as-value-another-syntax-for-semicolon

A>>Ага, хорошо бы.
S>А нафига? Ну, кроме как "в других языках есть"?

S>Не, серьёзно, зачем портить язык, добавляя 100500й способ сделать то же самое, только на пару символов короче? Не, для write-only кода, который никогда читать не будут, а сразу выбросят и перепишут, оно может и удобно.


S>Для нормального человека в чём кайф ловить разницу между

S>
S>public int F(int a) =>
S>(
S>    Console.WriteLine(a);
S>    a + 1
S>)
S>// и
S>public int F(int a)
S>{
S>    Console.WriteLine(a);
S>    return a + 1;
S>}
S>


Нафиг, согласен.

S>?


A>> Ну возвращать последнее выражение видимо уже невозможно, поведение сильно поменяет. А так конечно локальных функций нормальных не хватает иногда.

S>
S>Func<int, int> x = i => { ... };
S>

S>?

И это писать в каждом таком применении (а там может быть совсем не инт а что-то монстрообразное). Ну если пример с if чисто чтобы был для описания, то ситуация вида создал переменную, создал ресурс, записал в переменную, закрыл ресурс, работаешь с переменной дальше — ну просто на каждом шагу. Приходится постоянно писать отдельно объявление и присвоение из-за областей видимости. В объявлении соотвественно хрен напишеш var. Хорошо ещё решарпеп помогает быстро var менять на точный класс.

int a = 
 lock(dataInstance) 
 { 
 return dataInstance.Member1; 
 };


vs
int a = (Func<int>)(
    () => {
    lock(dataInstance) 
     { 
     return dataInstance.Member1; 
     };
    })();


Мне очевидно что первое короче не на "два символа".