<< Chapter < Page | Chapter >> Page > |
It usually isn't too difficult to write code to implement a set of rules to validate the incoming data. The hard part is figuring out what to do if theincoming data is not valid. The choices range all the way from flagging the data as invalid as shown in Listing 4 to throwing an exception which, if not properly handled, will cause the program to terminate. The circumstances dictate theaction to be taken.
The code in Listing 3 calls the setColor method twice. The first call passes a valid string, "Red", as a parameter. The second call passes an invalid string, "Green", as a parameter. This causes the second and third lines of text in Figure 1 to be displayed by the program.
As mentioned earlier, C# uses a special approach to identify properties. (You will see the code in TargetClass that accomplishes this shortly.) In the meantime, the code in Listing 5 (which is still part of the Main method) first sets, then gets, and finally displays the value of a property named height belonging to the object referenced by the contents of the variable named obj .
Listing 5 . Set, get, and display a property value with a valid value.
obj.height = 20;
Console.WriteLine("height: " + obj.height);
If you compare Listing 5 with Listing 1 , you will see that there is essentially no difference in the syntax of the code in the two listings. The syntax in both listings suggests that a value is beingdirectly assigned to a public instance variable belonging to the object. As we already know, that is true for Listing 1 . However, that is not true for Listing 5 .
Although it doesn't look like it, the code in Listing 5 is actually calling a special set Accessor method that hides the implementation behind a public interface. As you will see shortly, this special method contains validation code similarwhat you saw in Listing 4 .
Once again, although it doesn't look like it, the last statement in Listing 5 is actually calling a special get Accessor method belonging to the object to get the current value of the property. That method returns the value stored in the property. As before, thereturned value is concatenated with a literal string and passed to the WriteLine method of the Console class for display on the black screen.
Returning to the class named TargetClass , the special set Accessor and get Accessor methods for the property named height are shown in Listing 6 .
Listing 6 . The set Accessor and get Accessor methods for the property named height.
private 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
The value on the right side of the assignment operator in Listing 5 arrives on the set side of the code in Listing 6 as a hidden parameter named value .
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?