I think you need to take one step back, and get clear about what the difference is between Value types and Reference Types in .NET, and how they are stored in memory as they are created and used.
You "declare" variables in your code: they may or may not be automatically 'initialized' to some default value, depending on several factors (which you can understand by getting clear about Value and Reference Types).
I find the use of the word "defined" a little ambiguous because: at times it's used to mean the same thing as declared, and at other times it's used to mean the variable has a value assigned to it, or the (reference Type) variable has been instantiated
It may be helpful to think that you "assign values" to Value type variables, but you "create instances" of reference types. In the case of the 'string' type it gets a bit complex, and there's a good discussion of that complexity here[
^].
Get a good book on C#, perhaps one from Jesse Liberty, and get "grounded" on what .NET Types are, and what variables are; from there you can consider the use of 'static' vs. non-static Types, and so forth.
A little study now, and you can solve so many problems later.
best, Bill