I'm confused: you describe a Class with three variables; one is a string. Then you talk about a Method. The variables' scope will depend on where they are created: in the Class' scope, or in a method in the Class' scope.
Strings are a special case: every one you create through defining at design-time/code-time, or at run-time, is
interned: put in a special CLR table called the "intern pool." The reason for that is to make all strings with the same content have only one reference point, so look-up, and comparison, can be very fast.
Interned strings become part of the Assembly itself, and are not garbage collected.
See: [
^], [
^].
In general it would be an exceptional use case that would need for the programmer to directly manipulate what is in the intern pool, or the interned status of a given string in your application.
In most cases programs that create too many strings (by concatenation, for example) can be re-factored to use the 'StringBuilder object.