Access a public instance variable in the object
The last two statements in Listing 1 access a public instance variable belonging to the object. The first of the two statements assigns the stringvalue "Quit" to the variable. The second statement retrieves and displays that value.
Store a string value in the object's instance variable
Note the syntax of the first of these two statements. The value of the reference variable named obj is joined to the name of the object's public instance variable. (The name of the instance variable is text .) The assignment operator is used to store a string value in that instance variable.
You can think of this operation as involving the following steps:
- Get the object's reference from the variable named obj .
- Use that reference to locate the object in memory.
- Knock on the object's door and ask for access to the instance variable named text . (Access will be granted because the instance variable is declared public as you will see shortly.)
- Store the string value "Quit" in the instance variable using an assignment operator.
Get and display the value in the object's instance variable
The last statement does essentially the same thing in reverse.
- Get and use the object's reference to gain access to the object's public instance variable.
- Get the value stored in that instance variable.
- Concatenate that value to the literal string value "text".
- Pass the concatenated string to the WriteLine method of the static Console class to have it displayed on the standard output device (the black screen).
This produces the first line of output shown in Figure 1 .
Beginning of the class named TargetClass
The class definition for the class named TargetClass begins in Listing 2 .
Listing 2 . Beginning of the class named TargetClass.
public class TargetClass{public string text;
Declare a public instance variable
The code in the class begins by declaring a public instance variable. This is considered to be bad programming practice in most quarters unless the publicvariable is actually a constant, (which it is not).
This is the variable that is accessed by the last two statements in Listing 1 .
In most cases, instance variables should be declared private and should be made accessible through public accessor methods or public set and get methods. Youwill see examples of public access, set, and get methods later.
Different kinds of variables
I will generally refer to three kinds of variables:
- Instance variables - declared inside a class but outside of a method or constructor. (All variables in C# must be declaredinside a class. Unlike C++, there are no global variables or global functions in C#.)
- Local variables - declared inside a method or constructor.
- Class variable - declared inside a static class.
Any of these can be further qualified as follows:
- Reference variable - contains a reference to an object or contains null.
- Primitive variable - contains a value of a primitive type (int, float, double, etc.).
Instance variables
An instance variable belongs to a specific object. The lifetime of an instance variable is the same as the lifetime of the object to which it belongs.The scope of an instance variable depends on its access modifier such as public , private , or protected .