salve rgazzi sto affrontando l'argomento del return e dei metodi suddivisi mi potete dire in queto codicem cosè che nn va xchè nn riesco propio a capire dove sbaglio

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace fattoriale4
{
class Program
{
static byte num = 0;
static void InsDati()
{
Console.Write("Inserisci un numero (MAX 10): ");
num =Convert.ToByte(Console.ReadLine());
}
static void CalcFatt()
{
byte cnt = 1;
uint fatt = 1;
while (cnt <= num)
{
fatt *= cnt;
cnt++;
}
return fatt;
}
static void Main()
{
int risultato = 0;
InsDati();
risultato = CalcFatt();
Console.WriteLine("Il fattoriale di {0} è {1}", num, risultato);
}

}
}
grz mille in anticipo (questo codice serve a calcolare il fattoriale di un numero)