Clipboard.SetText () с использованием троичного оператора - PullRequest
2 голосов
/ 22 октября 2011
Clipboard.SetText(txtBox1.Text);

Как я могу использовать здесь троичный оператор, чтобы установить текст буфера обмена в txtbox1.Text, если txtbox1.Text не равен нулевой строке (ничего)?

Спасибо

Ответы [ 4 ]

3 голосов
/ 22 октября 2011

Ты не. Просто простое утверждение if сработает:

if (!string.IsNullOrEmpty(txtBox1.Text)) {
    Clipboard.SetText(txtBox1.Text);
}
3 голосов
/ 22 октября 2011

Вы не можете.Вы вызываете «SetText» в любом случае.Правильный способ добиться этого - не вызывать SetText, если текст не нулевой.Использование Clipboard.SetText (a? B: c);не даст вам ничего, если вы не хотите устанавливать текст (только если вы надеетесь, что SetText проигнорирует ноль), если вы не хотите использовать некоторые значения по умолчанию.в этом случае что-то вроде:


clipboard.SetText(string.IsNullOrEmpty(txtBox1.Text) ? "default text" : txtBox1.Text);

1 голос
/ 22 октября 2011

Я бы предложил простой if, с троичным оператором я не могу представить себе адекватного решения.

if (!String.IsNullOrEmpty(txtbox1.Text))
{
  Clipboard.SetText(txtbox1.Text);
}

Тройной беспорядок: (не используйте это в реальном приложении !!!)

Action executeAction = String.IsNullOrEmpty(txtbox1.Text) 
                        ? () => {} 
                        : () => { Clipboard.SetText(txtbox1.Text); };

executeAction.Invoke();
1 голос
/ 22 октября 2011

Почему вы хотите использовать троичный оператор?Если вам не нужен SetText, тогда не надо.

if (!String.IsNullOrEmpty(txtbox1.Text))
     Clipboard.SetText(txtbox1.Text);

Полагаю, вы могли бы сделать

Clipboard.SetText(String.IsNullOrEmpty(txtbox1.Text) ? (default here, or as is: Clipboard.GetText()) : txtbox1.Text);
...