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);
Другие вопросы по тегам