In addition to properties, most objects have methods. Methods are actions the object can perform, in contrast to attributes that describe the object. To understand this distinction, think about the Pet object example. A Dog object has a certain set of actions that it can perform. These actions, called methods in Visual C#, include barking, tail wagging, and chewing carpet (don't ask). Figure 3.6 illustrates the Dog object and its methods.
Figure 3.6 Invoking a method causes the object to perform an action.
Think of methods as functions—which is exactly what they are. When you invoke a method, code is executed. You can pass data to a method, and methods can return values. However, a method is neither required to accept parameters (data passed to it by the calling code) nor to return a value; many methods simply perform an action in code. Invoking (triggering) a method is similar to referencing the value of a property: You first reference the object's name, and then a dot, and then the method name as shown next:
For example, to make the hypothetical Dog object Bruno bark using Visual C# code, you would use this line of code:
Invoking methods is simple; the real skill lies in knowing what methods an object supports and when to use a particular method.
Understanding Method Dynamism
Properties and methods go hand in hand, and at times a particular method might become unavailable because of one or more property values. For example, if you were to set the NumberofLegs property on the Dog object Bruno equal to zero, the Walk() and Fetch() methods would obviously be inapplicable. If you were to set the NumberofLegs property back to four, you could then trigger the Walk() or Fetch() method again.