Notes on Declaring and Using Methods
You have seen three ways to call a method:
- Using a method name by itself to call a method of the same classsuch as Maximum( number1, number2, number3 ) in line 18 of Fig. 7.3.
- Using a variable that contains a reference to an object, followed by the dot (.) operator and the method name to call a non-static method of the referenced objectsuch as the method call in line 9 of Fig. 7.4, maximumFinder.DetermineMaximum(), which calls a method of class MaximumFinder from the Main method of MaximumFinderTest.
- Using the class name and the dot (.) operator to call a static method of a classsuch as Math.Sqrt( 900.0 ) in Section 7.3.
Note that a static method can call only other static methods of the same class directly (i.e., using the method name by itself) and can manipulate only static variables in the same class directly. To access the class's non-static members, a static method must use a reference to an object of the class. Recall that static methods relate to a class as a whole, whereas non-static methods are associated with a specific instance (object) of the class and may manipulate the instance variables of that object. Many objects of a class, each with its own copies of the instance variables, may exist at the same time. Suppose a static method were to invoke a non-static method directly. How would the method know which object's instance variables to manipulate? What would happen if no objects of the class existed at the time the non-static method was invoked? Thus, C# does not allow a static method to access non-static members of the same class directly.
There are three ways to return control to the statement that calls a method. If the method does not return a result, control returns when the program flow reaches the method-ending right brace or when the statement
return;
is executed. If the method returns a result, the statement
return expression;
evaluates the expression, then returns the result (and control) to the caller.
|
|
|
|