Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
chanjong kim2,315 Points
setting System.Random as field
When declaring static System.Random field how I did private static readonly Random _random;
how Jeremy did private static readonly Random _random = new Random();
Question is why do you initialise a Random object using constructor? Unlike other fields that we have had so far, they just declare their object type and variable name like private MapLocation _location; private Path _path; private Turret _turret; and so on. They all did not use constructor. Do you use contructor to initialise Random object because just declaring Random obejct would contain null? Aren't we still able to use Next() or NextDouble() on _random object ?? Then does all static field need a value or be initialised? Sorry i dont understand
Steven Parker225,712 Points
I think you meant to ask "why do you not initialize the Random field using constructor?"
In the "Tower" class, the initialization of the "
_location" variable is done in the class constructor. Since it's not static, you can be sure the constructor will run to set it up.
The "Random" variable is initialized at the same time that it is declared because it is static, which means it does not depend on the constructor and is shared among all instances.
And no, you would not be able to call methods using a null object value.