Как правильно использовать void и return в С#?
1. вы хотите вывести summaNumbers, но этот метод возвращает void, а это нельзя сконвертировать/вывести, поэтому ошибка. Метод должен возвращать что-либо.
2. если у вас цикл не выполнится ни разу - return ни разу не будет вызван. кстати, стоит обратить внимание, что если вы таки попадёте в цикл, то выйдете из него в первой же итерации. я бы вынес int temp = 0;  до цикла, а return temp; - после, тогда вы посчитаете сумму интересующих вас чисел и после цикла вернёте результат. ошибки уже не будет, так как return будет обязательно вызван.
3. если вы пишете void, то return ... не будет работать. можно, если память мне не изменила, использовать return; (без указания возвращаемого значения), тогда будете просто "вываливаться" из метода. если же возращаться должен не void, а что-то конкретное, то это что-то и нужно вернуть, при этом вызов return должен выполниться при любых условиях. то есть, если return окажется внутри условия, то, опять же, в случае если условие не выполнится - вы не выполните и return. поэтому return должен присутствовать также либо в else, либо после условия
4. читай выше
Вот пример, думаю он объяснитpublic class Program
    {
        public static void Main(string[] args)
        {
            //Просто вызываем функцию
            summaNumbers(100);
            Console.WriteLine();
            Console.WriteLine(summaNumbersAndReturnCount(100));
        }
        
        static void summaNumbers(int x)
        {
            for (int i = 0; i <= x; i++)
            {
                //Условие проверяющее, что допустим дальше расчитывать смысла нет и поэтому
                //вызываем return завершающее данную функцию и возвращающее управление Main
                //if(condition == 0)
                //    return;
                
                if (i % 3 == 0 && i % 5 == 0)
                {
                    Console.WriteLine(i); 
                }
            }
        }
        
        static int summaNumbersAndReturnCount(int x)
        {
            var _count = 0;
            for (int i = 0; i <= x; i++)
            {
                //Условие проверяющее, что допустим дальше расчитывать смысла нет и поэтому
                //вызываем return завершающее данную функцию и возвращающее управление Main
                //if(condition == 0)
                //    return;
                
                if (i % 3 == 0 && i % 5 == 0)
                {
                    _count++;
                }
            }
            
            return _count;
        }
    }