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! While you're at it, check out some resources Treehouse students have shared here.
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 trialUnsubscribed User
2,446 Points2:53 When he calls the variable _location
2:53 When he calls the variable _location, he doesn't use the underscore. This is not necessary for the program to know where he's trying to call it from?
2 Answers
Steven Parker
231,268 PointsThe "location
" (no underscore) property provides public access to the private field "_location
" (with underscore) field inside the class. The property uses the get and set methods to provide access to the field.
Daniel Crittenden
9,308 PointsIf you tried to use _location
, it would be out of scope -- the computer could not access the variable directly from the Main() method.
_location
is a private field that is only accessible within the Invader class, specifically by the getter and setter methods. So, in order to access to access _location
from Game.cs, you'd actually type invader.Location
(or invader.GetLocation()
if the applicable getter method was setup).
The location
variable the presenter uses on Game.cs was a different one. It is a MapLocation
object that was instantiated on line 27 of Game.cs.