<< Chapter < Page
  Xna game studio     Page 12 / 12
Chapter >> Page >

Listing 10 . Pause until the user presses any key.

Console.ReadKey(); }//end Main}//end class Props01

The end of the program

Listing 10 signals the end of the Main method, the end of the class named Props01 , and the end of the program. When the user presses a key, the black screen disappears from the desktop and the programterminates.

Run the program

I encourage you to copy the code from Listing 11 . Use that code to create a C# console application. Build and run the program. Experiment with the code,making changes, and observing the results of your changes. Make certain that you can explain why your changes behave as they do.

Run my program

Click here to download a zip file containing my version of the program. Extract the folder named Props01 from the zip file and save it somewhere on your disk. Start Visual C# 2010 Express and select Open Project... from the File menu. Navigate to the project folder and select the file with the extension of .sln . This should cause the project to open and be ready to run or debug as describedin the earlier module titled Getting Started .

Summary

You learned about abstraction, abstract data types, encapsulation, information hiding, class member access control, instance variables, localvariables, class variables, reference variables, primitive variables, how C# identifies properties, and how to set and get properties in C#.

You also learned about public accessor methods, public manipulator methods, data validation by property setters and public accessor methods, and a few otherthings along the way.

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Xna0106-Encapsulation in C#
  • File: Xna0106.htm
  • Published: 02/24/14
Disclaimers:

Financial : Although the Connexionssite makes it possible for you to download a PDF file for this module at no charge, and also makes it possible for you topurchase a pre-printed version of the PDF file, you should be aware that some of the HTML elements in this module may not translate well intoPDF.

I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.

In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.

Affiliation :: I am a professor of Computer Information Technology at Austin Community College in Austin, TX.

Complete program listing

A complete listing of the C# program discussed in this module is provided in Listing 11 .

Listing 11 . The program named Props01.

/*Project Props01 Copyright 2009, R.G.BaldwinThis program is designed to explore and explain the use of encapsulation and properties in C#.Program output is: text: Quitcolor: Red color: Bad colorheight: 20 double height: 40height: 0 *********************************************************/using System; namespace Props01{class Props01{ static void Main(string[]args){ TargetClass obj = new TargetClass();//Access a public instance variable obj.text = "Quit";Console.WriteLine("text: " + obj.text); //Call public accessor methodsobj.setColor("Red"); Console.WriteLine("color: " + obj.getColor());//Call public accessor methods again with an // invalid input value.obj.setColor("Green"); Console.WriteLine("color: " + obj.getColor());//Set and get a property obj.height = 20;Console.WriteLine("height: " + obj.height); //Call manipulator method and display results.obj.doubleHeight(); Console.WriteLine("double height: " + obj.height);//Set and get the property again with an invalid // input value.obj.height = 100; Console.WriteLine("height: " + obj.height);//Pause until user presses any key.Console.ReadKey(); }//end Main}//end class Props01 //====================================================//public class TargetClass{ //A public instance variable - not good practicepublic string text; //This would be a property named color in Java, but// not in C# private string colorData = "";public void setColor(string data){ //Validating codeif(data.Equals("Red") || data.Equals("Blue")){ //Accept incoming data valuecolorData = data; }else{//Reject incoming data value colorData = "Bad color";}//end if-else }//end setColor//--------------------------------------------------// public string getColor(){return colorData; }//end getColor//--------------------------------------------------// //This is a C# property named heightprivate int heightData; public int height{get{ return heightData;}//end get set{//Validating code if(value<84){ heightData = value;}else{ heightData = 0;}//end else }//end set}//end height property //--------------------------------------------------////This is a manipulator method public void doubleHeight(){heightData *= 2; }//end doubleHeight//--------------------------------------------------// }//end TargetClass}//end namespace

-end-

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask