![]() ![]() Since downcasting is not permitted, it is necessary to cast the lawyer as a lawyer rather than as a person unfortunately, that does not work. However, if we pass in object of the lawyer type (the derived class), the object is treated as a person rather than a lawyer and the other lawyer properties are invisible to the code even though the lawyer object passed to the "SavePerson" method contains both properties. Now, if we pass the following method a object of the person type, everything is fine and all properties are visible in the code. The sole method contained in this class can accept either a person or one of person's derived class which is in this case only lawyers. To illustrate the point, I built a static class entitled, "PeopleHandler". What now makes this all interesting is if we wanted to use a single method to save either a person or a lawyer (I'm going out on a limb here in indicating that lawyers inherit from persons). ![]() The person contains some basic information about a person whilst the lawyer class contains a couple of a additional properties: They are the person class (the base) and the lawyer class (derived from person). The Program.cs file contains two classes used to provide an example of a base class and a derived class. The example solution provided is in the form of a console mode application the entire solution is contained within the program.cs file. In spite of the general illegality of downcasting you may find that when working with generics it is sometimes handy to do it anyway. ![]() Upcasting is legal in C# as the process there is to convert an object of a derived class type into an object of its base class type. This article describes a simple approach to downcasting in C# downcasting merely refers to the process of casting an object of a base class type to a derived class type. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |