Olá Vinicius.
Tudo bem?
A função Console.Read() no C# realmente retorna um valor do tipo int.
Isso ocorre porque ela lê um único caractere e retorna seu valor numérico (código ASCII) correspondente.
Por exemplo, se você digitar "A" no console, Console.Read() irá retornar o valor 65, que é o código ASCII da letra "A".
Para ler uma string do usuário, você deveria usar Console.ReadLine(), que retorna um valor do tipo string.
Se o seu objetivo é receber um número inteiro como entrada, você pode fazer a conversão após ler a linha com Console.ReadLine().
Exemplo 1: Usando Console.ReadLine() para ler uma string
Console.WriteLine("Digite um número inteiro:");
string input = Console.ReadLine(); // Lê como string
int numero = int.Parse(input); // Converte a string para int
Console.WriteLine("Você digitou o número: " + numero);
Se você quiser usar Console.Read() para ler um único caractere e quiser convertê-lo para int, poderia fazer assim:
Console.WriteLine("Digite um número inteiro:");
char inputChar = (char)Console.Read(); // Lê um único caractere
int numero = inputChar - '0'; // Converte o caractere para seu valor numérico
Console.WriteLine("Você digitou o número: " + numero);
Nesse caso, a conversão inputChar - '0' é usada para transformar o caractere numérico ('0' a '9') no valor inteiro correspondente (0 a 9).
Qualquer duvida comente ai.
Bons estudos.