[SOLVED] return function value to variable


I’m trying to understand c# and methods/functions at the moment.
I simply want to have the function PlayerName() return a value that can be stored in the variable playerName.
I have this piece of code and I don’t understand what is wrong.
Without the while-loop, it works. As soon as the while loop is implemented, however, a problem occurs in return playerName (Use of unassigned local variable ‘playerName’). I don’t understand how it is unassigned.

namespace methodtest
    internal class Program
        static void Main(string[] args)
            string playerName = PlayerName();


        static string PlayerName()
            bool notCorrect = true;
            string playerName;
            while (notCorrect)
                Console.Write("Type your name: ");
                playerName = Console.ReadLine();
                Console.WriteLine($"You typed {playerName}. Continue? 'y'/'n'");
                string correct = Console.ReadLine();

                if (correct == "n")
                    Console.WriteLine("Try again.");
                else if (correct == "y")
                    notCorrect = false;
            return playerName;



The error message you’re getting is CS0165: Use of unassigned local variable 'playerName'
The compiler is telling you that you need to give playerName an initial value.
You can initialize it with any of the following you seem fit.

string.Empty or ""


as an example
string playerName = string.Empty;

Answered By – Snazzie

Answer Checked By – Jay B. (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *