2016-12-02 14 views
0

Я ищу короткую руку для возврата на истину. Пример кода объясняет II лучше:Короткая рука для возврата на true

if(error == true) 
{ 
    return; 
} 

Я спрашиваю о версии стенографии коды выше, в основном что-то вроде:

error?return; 

... или ...

error?.return; 

... или ...

error||return; 

... или что угодно. Вы, ребята, поняли, и нет, никто из них не работает.

Спасибо всем.

+3

И что бы вы получили, уменьшив его до одной строки? Помимо того, что это больше похоже на bash и меньше похоже на C#, lol ... – code4life

+2

Мне сложно понять, почему люди любят сравнивать с true/false – Danh

ответ

2

Я думаю, что это не намного проще, чем небольшое сокращение вашего собственного кода.

Возможно:

if(error) return; 
+0

также меняют ошибку имени переменной на нечто вроде «a», которое спасет вас поразительные 4 персонажа – meganaut

+0

(Кроме того, я лично рекомендую использовать скобки {}, иначе вы в один прекрасный день получите: if (error) return; Console.WriteLine («Ошибка возникла»); – Monza

+0

Да, я получил это Идея состоит в том, чтобы иметь возможность подключать простые команды (а не только возврат) к логическому значению в одной строке. Легче читать, это все, больше синтаксиса с меньшим количеством сахара. – Lara

1

Тройная оператор ?: не предназначен для управления потоком, он предназначен только для условного присваивания. Если вам нужно контролировать поток вашей программы, используйте структуру управления, такую ​​как if/else.

Тернарный оператор должен инициализировать переменную с результатом выражения. Во время компиляции, компилятор С # транслирует трехкомпонентное выражение в отчетность филиалов

?. новый Null-Условный оператор ввел в C# 6.0

Так что лучший подход был бы

if(error) return 
+0

Условный (ака тернарный) оператор не собирается работать по той же причине, что многие из предложений OP не будут работать, 'return' - это утверждение, а не выражение. Он не может использоваться там, где ожидается выражение (условный оператор, оператор с нулевым условием, булевский оператор и т. Д.). –

+0

Yup !! @mikez Я получил вашу точку –

+0

Я надеялся на что-то вроде 'OnEventHandler? .Invoke (...)', который я нахожу, более читабельен, когда null проверяет каждый обработчик событий перед использованием. – Lara

0
if(error == true) 
{ 
    return; 
} 

Предполагая error является булевой вы можете сократить это следующим образом:

if (error) return; 
-2

Пожалуйста, попробуйте ниже,

Boolean returnvalue = error==true? true : false; 

или

Boolean returnvalue = error ? true : false; 

Пожалуйста, дайте мне знать, если его работал для вас.

Спасибо!

+0

Почему это вместо того, чтобы возвращать только ошибку? ошибка возврата; –

+0

он никогда не вернет пустое значение, поэтому вам не нужно обрабатывать ошибку для этого, в противном случае вы должны установить значение по умолчанию false для вашей переменной, что не является хорошей практикой. –