C# Может ли каждое утверждение быть выражением?
Может ли каждое утверждение быть выражением в C#? Например, я знаю, что оператор вызова метода может использоваться как выражение, и поэтому я могу делать такие вещи:
for (int i = 0; i < 10; Console.WriteLine(i++));
Но так ли это с каждым утверждением?
Изменить: Но эта вещь по какой-то причине не работает с циклом while
while (Console.WriteLine(1) > 0) { }
Этот код выдает ошибку. Может быть, вы можете объяснить, что происходит? Я немного запутался.
1 ответ
В обоих случаях вам нужно пустое утверждение:
Пустое утверждение состоит из одной точки с запятой. Он ничего не делает и может использоваться в тех местах, где требуется утверждение, но никаких действий выполнять не нужно.
Причина по которой for(int i = 0; i < 10; Console.WriteLine(i++));
работает, потому что у него есть пустое утверждение ;
в конце блока.
Чтобы заставить цикл while работать, вам также нужно добавить пустой оператор.
while(Console.WriteLine(1) > 0);