Почему мы не можем написать Console.Writeline() in if Состояние в C#
? Но мы можем написать printf() заявление в если состояние в C
?Почему мы не можем писать Console.Writeline() в инструкции if?
ответ
В С, тип возврата printf
- int
- количество написанных символов.
Также в C состояние if
может быть любым невообразимым типом данных, в основном.
Сравните это с C# и .NET, где Console.WriteLine
имеет тип возвращаемого void
, и условия в качестве if
заявление сусло иметь тип bool
(или неявно конвертируются в bool
). (Таким образом, даже если Console.WriteLine
вернулся int
, вы все равно нужно что-то вроде if (Console.WriteLine(...) != 0)
для того, чтобы сделать его действительным.)
Что вы хотите, чтобы состояние на самом деле проверить? Если Console.WriteLine
не может по какой-то причине, он будет бросать исключение в любом случае ...
Просто для удовольствия, вы можете использовать вспомогательный класс:
public static class True
{
public static bool Invoke(Action action)
{
action();
return true;
}
}
И вы можете использовать Console.WriteLine
в if
заявлении:
if (myConditions && True.Invoke(() => Console.WriteLine(@"myConditions is true")))
{
// do smth
}
Можно с уверенностью сказать, что C# является результатом эволюции C Язык. В C# фокус состоит в том, чтобы сделать код более логичным и читаемым. C более логичен для Ассемблер, только язык, который аппаратное обеспечение понимает. Не имеет смысла иметь небулевую операцию в IF заявление в C#.
- 1. Почему мы не можем писать частичные функции?
- 2. Почему мы не можем объявлять переменные в выражении if?
- 3. Почему мы не можем перебирать «...»?
- 4. Почему мы не можем использовать console.write или console.writeLine в классе без метода
- 5. Можем ли мы писать обновления и удалять запросы в представлениях?
- 6. Почему мы не можем назвать прототипы?
- 7. Почему мы не можем использовать цикл «le» in for и можем использовать в «if condition»
- 8. Почему мы не можем исключить из actionPerformed()
- 9. Почему мы не можем сделать (void) 10?
- 10. Можем ли мы писать условные болты в шторме?
- 11. в netty, мы можем писать и получать только данные менее 1024 байта: как мы можем писать или получать больше?
- 12. Почему мы не можем задавать свойства свойств?
- 13. Можем ли мы писать петли/условия/блок кода в отсрочке?
- 14. Почему мы не можем подключиться к HTTPS?
- 15. Сколько логического оператора мы можем использовать в инструкции в python?
- 16. Почему мои инструкции if пропущены?
- 17. Почему мои инструкции if не работают?
- 18. Использование let в инструкции if в Swift
- 19. Почему некоторые правила инструкции if не работают?
- 20. Почему мы не можем высмеивать последний класс?
- 21. Почему мы не можем сериализовать эти объекты?
- 22. Почему мы не можем изменить R.java?
- 23. Почему мы не можем получить список объектов?
- 24. Почему мы не можем добавить два указателя?
- 25. Почему мы не можем переопределить `||` и `&&`?
- 26. Где ошибка в этой инструкции Console.WriteLine?
- 27. Почему мы не можем присвоить значение указателю
- 28. Почему мы не можем использовать конструкторы с выраженным выражением?
- 29. Почему мы не можем расширять общий тип?
- 30. Почему мы не можем сделать функции явными?
Поскольку ['printf'] (http://en.cppreference.com/w/c/io/fprintf) возвращает значение, которое можно протестировать, и [' WriteLine'] (https://msdn.microsoft .com/en-us/library/system.console.writeline% 28v = vs.110% 29.aspx). –
Отправьте свой код. – LPs
@ al-Acme Я предполагаю, что он/она имел в виду в состоянии, а не внутри тела. – Pazza22