Подтвердить что ты не робот

Не делать ключевое слово в С#?

Есть ли ключевое слово "ничего не делать" на С#?

Например, я хочу использовать тернарный оператор, в котором одно из действий должно не предпринимать никаких действий:

officeDict.ContainsKey("0") ? DO NOTHING : officeDict.Add("0","")
4b9b3361

Ответ 1

Нет, такого ключевого слова нет. Кроме того, оператор ?: не предназначен для принятия решений. Это означало для принятия значения (или, более технически, выражения значений).

На самом деле вы действительно хотите использовать условие if для такого рода принятия решений:

if (!officeDict.ContainsKey("0"))
    officeDict.Add("0", "");

Ответ 2

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

Но чтобы ответить на то, что вы просите, вы можете использовать лямбда и делегатов:

// Bad code, do not use:
(officeDict.ContainsKey("0") ? (Action)(() => { }) : () => officeDict.Add("0", ""))();

Ответ 3

Отбросив тот факт, что это плохая идея, вы действительно можете создать метод "DoNothing", используя атрибут, чтобы условно испустить вызов метода (обратите внимание, что это зависит от соглашения, которое вы не #define "НИКОГДА", условие.) Из-за ConditionalAttribute вызовы метода не будут испускаться, и у вас есть раздел "nop" кода.

       [Conditional("NEVER")] 
       public void DoNothing() 
       { 
       } 

Тем не менее, как уже отмечалось несколькими другими, это не рекомендуется.

Ответ 4

Почему вы хотите использовать тернарный оператор, если вы только хотите что-то сделать в одном из случаев? Почему бы вам просто не инвертировать условие и использовать оператор if?

if (!officeDict.ContainsKey("0"))
{
    officeDict.Add("0","")
}

Ответ 5

Почему бы просто не использовать оператор if, чтобы код выглядел так:

if(!officeDict.ContainsKey("0"))
    officeDict.Add("0","")

Ответ 6

Тернарный оператор предназначен для выражений, а не для операторов.

Вам нужен оператор if.

Ответ 7

Почему бы не написать его простым if?

if (!officeDict.ContainsKey("0"))
    officeDict.Add("0","")

Это будет более читаемо.

Ответ 8

Почему бы вам просто не использовать инструкцию IF для этого?

if(!officeDict.ContainsKey("0")) officeDict.Add("0","");

Ответ 9

Вместо этого используйте оператор if.

if (!officeDict.ContainsKey("0")) 
{
    officeDict.Add("0","")
}

Ответ 10

Попробуйте это (grinns)

    if (officeDict.ContainsKey("0")) 
       Thread.Sleep(1) 
   else
       officeDict.Add("0","")