Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
24 / 24 / 0
Регистрация: 24.01.2018
Сообщений: 54

Задача про сокращенный синтаксис

24.11.2018, 10:14. Показов 7313. Ответов 1

Студворк — интернет-сервис помощи студентам
Всем здравствуйте! Решаю задачку: Ваша команда пишет программу с оконным интерфейсом, и вам надо реализовать инициализацию меню.

Для каждого пункта меню указывается название, горячая клавиша (далее указана в скобках) и список подменю (null, если подменю нет).

На верхнем уровне должно находится два пункта: File (F) и Edit (E).

Меню File должно содержать команды New (N), Save (S).

Меню Edit (E) должно содержать команды Copy (C) и Paste (V).

Решите задачу в одно выражение с использованием сокращенного синтаксиса создания объектов. Используйте переводы строк и отступы, чтобы сделать код более читаемым.

C#
1
2
3
4
5
6
public class MenuItem
{
    public string Caption;
    public string HotKey;
    public MenuItem[] Items;
}
Вот моё решение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static MenuItem[] GenerateMenu()
{
    return new[] {
        new MenuItem()
        {
            Caption = "File", HotKey = "F", Items = new[] {{Caption = "New", HotKey = "N"},{Caption = "Save", HotKey = "S"}}
        },
        {
            Caption = "Edit", HotKey = "E", Items = new[] {{Caption = "Copy", HotKey = "C"},{Caption = "Paste", HotKey = "V"}}
        }
    };
}

Выдаёт ошибку: (6,52): error CS0103: The name 'Caption' does not exist in the current context(6,69): error CS0103: The name 'HotKey' does not exist in the current context(6,51): error CS0623: Array initializers can only be used in a variable or field initializer. Try using a new expression instead.(6,84): error CS0103: The name 'Caption' does not exist in the current context(6,102): error CS0103: The name 'HotKey' does not exist in the current context(6,83): error CS0623: Array initializers can only be used in a variable or field initializer. Try using a new expression instead.(9,4): error CS0103: The name 'Caption' does not exist in the current context(9,22): error CS0103: The name 'HotKey' does not exist in the current context(9,36): error CS0103: The name 'Items' does not exist in the current context(9,52): error CS0103: The name 'Caption' does not exist in the current context(9,70): error CS0103: The name 'HotKey' does not exist in the current context(9,51): error CS0623: Array initializers can only be used in a variable or field initializer. Try using a new expression instead.(9,85): error CS0103: The name 'Caption' does not exist in the current context(9,104): error CS0103: The name 'HotKey' does not exist in the current context(9,84): error CS0623: Array initializers can only be used in a variable or field initializer. Try using a new expression instead.(8,3): error CS0623: Array initializers can only be used in a variable or field initializer. Try using a new expression instead.

Не надо писать код за меня, дайте подсказки, как это исправить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2018, 10:14
Ответы с готовыми решениями:

Сокращенный вид if
Здравствуйте, Помогите разобраться. Распишите эти сокращенные условия в обычный вид (if-else) для лучшего понимания data1 =...

Сокращенный синтаксис языка PHP
Дорогие ребяты, а подскажите, пожалуйста, какой-нить хороший интернет-ресурс, где были бы описаны конструкции языка с сокращенной формой...

Про синтаксис using
Доброе время суток Часто встречаю такую конструкцию: #include <iostream> using std::cout; using std::cin; #include...

1
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
24.11.2018, 11:49
ты пропускаешь указание типа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public static MenuItem[] GenerateMenu()
{
    return new[] {
        new MenuItem()
        {
            Caption = "File", HotKey = "F", Items = new MenuItem[] {new MenuItem{Caption = "New", HotKey = "N"}, new MenuItem{Caption = "Save", HotKey = "S"}}
        },
        new MenuItem()
        {
            Caption = "Edit", HotKey = "E", Items = new MenuItem[] {new MenuItem{Caption = "Copy", HotKey = "C"},new MenuItem{Caption = "Paste", HotKey = "V"}}
        }
    };
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2018, 11:49
Помогаю со студенческими работами здесь

подскажите про синтаксис NOLOCK
Добрый день, спасибо что зашли в вопрос, а он вот какой: В ситуации, когда при выборке мы даём таблице псевдоним, правильный синтаксис...

Вопрос про обновляемый запрос и итоговые данные, синтаксис DLookup...
Господа, подскажите пожалуйста правильное решение! Простой пример: Таблица уникальных названий клиентов Таб1 и таблица с детальными...

Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы.
читаю книгу Эрика Фримена про основы javascript.В конце 5 главы есть задачка про взлом кода.Никак не могу понять как ее решить.НЕ понимаю...

Где можно прочитать про использование и синтаксис баз данных DBISAM в Delphi?
Вот код проекта, который я частично унаследовал от предшественников, частично дополнил сам (вроде бы корректно перенес сюда из проекта в...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он уплатил по 31 талеру, а за каждого быка по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru