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

Сообщение Несколько соображений по дизайну C# от 11.07.2016 5:08

Изменено 17.07.2016 20:38 VladD2

В языке много бессмысленных ритуалов, например после каждой строчки нужно ставить ;. Обязательно. Вопрос зачем?
Еще один ритуал. При вызове функции обязательно нужно ставить (). Даже если функция не является мутатором. То есть выражение вида:

var allIds = result.SelectMany(x => x).Distinct().ToList();

Можно было бы переписать:
var allIds = result.SelectMany.Distinct.ToList


А если убрать обязательность var, то совсем здорово:
allIds = result.SelectMany.Distinct.ToList


Легко читается, да и пишется тоже. Есть еще один ритуал, которые все много раз делали:
public class Some
{
   private int val1;
   private int val2;
   public Some(int val1, int val2)
   {
    this.val1 = val1;
    this.val2 = val2;
   }
}

Могло бы выглядеть как:
public class Some
{
public Some(int val1, int val2)
{
}
}
[/cs]
То есть наличие в конструкторе означает наличие у типа этих полей.
Что думаете? Есть ли основания у подобных претензий?
Несколько соображений по дизайну C#
В языке много бессмысленных ритуалов, например после каждой строчки нужно ставить ;. Обязательно. Вопрос зачем?
Еще один ритуал. При вызове функции обязательно нужно ставить (). Даже если функция не является мутатором. То есть выражение вида:

var allIds = result.SelectMany(x => x).Distinct().ToList();

Можно было бы переписать:
var allIds = result.SelectMany.Distinct.ToList


А если убрать обязательность var, то совсем здорово:
allIds = result.SelectMany.Distinct.ToList


Легко читается, да и пишется тоже. Есть еще один ритуал, которые все много раз делали:
public class Some
{
   private int val1;
   private int val2;
   public Some(int val1, int val2)
   {
    this.val1 = val1;
    this.val2 = val2;
   }
}

Могло бы выглядеть как:
public class Some
{
   public Some(int val1, int val2)
   {
   }
}

То есть наличие в конструкторе означает наличие у типа этих полей.
Что думаете? Есть ли основания у подобных претензий?