Section 7.4. Initializers


7.4. Initializers

It is possible to initialize the values of member variables in an initializer , instead of having to do so in the constructor. You create an initializer by assigning an initial value to a class member:

 private int Second = 30; // initializer 

Assume that the semantics of the Time object are such that no matter what time is set, the seconds are always initialized to 30. You might rewrite your Time class to use an initializer so that the value of Second is always initialized, as shown in Example 7-4.

Example 7-4. Using an initializer
 using System; public class Time {    // private member variables    int year;    int month;    int date;    int hour;    int minute;    int second = 30;    // public method    public void DisplayCurrentTime( )    {       System.Console.WriteLine( "{0}/{1}/{2} {3}:{4}:{5}",       month, date, year, hour, minute, second );    }    // constructor    public Time( int theYear, int theMonth, int theDate,    int theHour, int theMinute )    {       year = theYear;       month = theMonth;       date = theDate;       hour = theHour;       minute = theMinute;    } } public class Tester {    static void Main( )    {       Time timeObject = new Time( 2008, 8, 1, 9, 35 );       timeObject.DisplayCurrentTime( );    } } 

The output looks like this:

 8/1/2008 9:35:30 

If you do not provide a specific initializer, the constructor initializes each integer member variable to zero (0). In the case shown, however, the Second member is initialized to 30:

 private int Second = 30; // initializer 

Later in this chapter, you will see that you can have more than one constructor. If you assign 30 to Second in more than one of these, you can avoid the problem of having to keep all the constructors consistent with one another by initializing the Second member, rather than assigning 30 in each of the constructors.



Learning C# 2005
Learning C# 2005: Get Started with C# 2.0 and .NET Programming (2nd Edition)
ISBN: 0596102097
EAN: 2147483647
Year: 2004
Pages: 250

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net