Eerst een stukje voorbeeld code:
Mijn probleem is dat ik een methode heb die een object accepteert en de naam van het type van het object gebruikt. In het geval van p moet ik dan ook 'Person' hebben en niet 'Employee'. Hoe komt het dat het runtime-type niet verandert als ik eerst cast en daarna GetType() doe? Komt dit misschien door boxing ofzo?
In ieder geval zou het zeer vervelend zijn als ik er niet achter kan komen wat het type is na de cast.
Het zelfde probleem treedt overigens ook op als je Person p as Person doet.
C#:
1
2
3
4
5
6
7
8
| public class Person {} public class Employee : Person {} Employee emp = new Employee(); Debug.WriteLine(emp.GetType()); //geeft Employee, prima natuurlijk Person p = (Person) emp; Debug.WriteLine(p.GetType()); //geeft ook Employee?! |
Mijn probleem is dat ik een methode heb die een object accepteert en de naam van het type van het object gebruikt. In het geval van p moet ik dan ook 'Person' hebben en niet 'Employee'. Hoe komt het dat het runtime-type niet verandert als ik eerst cast en daarna GetType() doe? Komt dit misschien door boxing ofzo?
In ieder geval zou het zeer vervelend zijn als ik er niet achter kan komen wat het type is na de cast.
Het zelfde probleem treedt overigens ook op als je Person p as Person doet.
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!