yms: (Default)
[personal profile] yms
м-да, C# 3.0 будет совсем другим языком, чем 1.1...
var contacts = new[] {
  new {
    Name = "Chris Smith",
    PhoneNumbers = new[] { "206-555-0101", "425-882-8080" }
  },
  new {
    Name = "Bob Harris",
    PhoneNumbers = new[] { "650-555-0199" }
  }
};

— так создается массив структур без их объявления, без единого упоминания типа и без конструкторов.

Date: 2005-12-12 09:09 pm (UTC)
From: [identity profile] yms.livejournal.com
вообще стратегию развития C# с самой первой версии можно описать словами "меньше писанины". И это идёт прежним курсом.

Date: 2005-12-18 10:28 pm (UTC)
From: [identity profile] syarzhuk.livejournal.com
Но зачем, говорит мой внутренний VB-шник, требовать при вызове функции без аргументов писать в конце строчки три лишних символа (); ?

Date: 2005-12-19 07:15 am (UTC)
From: [identity profile] yms.livejournal.com
а потому что в C#, как и в C, имя функции без параметров в выражении означает указатель на функцию делегат. А точки с запятой - так зато в VB какой-то символ подчеркивания при переносе пишут, а при укладывании двух операторов в одну строку - двоеточие... и для обоих надо шифт нажимать...

Date: 2005-12-20 06:33 pm (UTC)
From: [identity profile] syarzhuk.livejournal.com
Правильно. С делалось для старого дохлого PDP, на котором не хватало сил сделать нормальный разборщик кода (собственно, оттуда же растут ноги case sensitivity, отсутствия в С нормальных строчек и необходимость писать break в операторе switch). Но теперь, после, считай, декады существования не самого сложного языка VB, в котором компилятор прекрасно понимает, что если у объекта Obj описаны property Prop, процедура Proc и функция Func - то Obj.Prop - это обращение к свойству, Obj.Proc - это вызов процедуры, а Obj.Func - это вызов функции с игнорированием результата, и без всяких скобочек, странно требовать писать лишние ничего не значащие для логики программы символы, только для того чтобы упростить компилятор. А подчёркивания и двоеточия - корявость, конечно, но нормальный код на 99% подчиняется правилу "одна строка - один оператор", поэтому это та корявость, которая не сильно мешает.

Profile

yms: (Default)
Michael Yutsis

March 2022

S M T W T F S
  12 345
678910 1112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 24th, 2026 03:11 pm
Powered by Dreamwidth Studios