Member 14120682 Ответов: 1

В качестве оператора в языке Си можно использовать только вызов присваивания инкремент декремент и новый объект#


  Form prompt = new Form()
            {
                Width = 500,
                Height = 150,
                FormBorderStyle = FormBorderStyle.FixedDialog,
                Text = caption,
                StartPosition = FormStartPosition.CenterScreen
            };
            Label textLabel = new Label() { Left = 50, Top = 20, Text = text };
            TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
            Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
           confirmation.Click += (sender, e) => { prompt.Close(); };
            prompt.Controls.Add(textBox);
            prompt.Controls.Add(confirmation);
            prompt.Controls.Add(textLabel);
            prompt.AcceptButton = confirmation;

             prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";

What I have tried:

prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";


only assignment call increment decrement and new object can be used as a statement in c#

1 Ответов

Рейтинг:
0

OriginalGriff

Посмотрите на ваш код, и я его немного упрощу:

prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
CallMyMethod() == 0 ? "A" : "B";
Это непригодное утверждение, потому что оно "возвращает" одну из двух строк, но ничего с ней не делает! Система смотрит на это и говорит: "что мне делать с "А" или "Б"? Мне некуда их девать!"

Вам нужно задание, чтобы это сработало:
string result = CallMyMethod() == 0 ? "A" : "B";
Дает ему место для хранения результата, так что он будет компилироваться.
Поэтому, возможно попробовать:
string result = prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";