Information générale
Catégorie:
Code, syntaxe and commandes
>>>>>This is the first in what I think will be a series of discussions relating to C#. I am immersed in learning it and know others are as well. Or already have, or are thinking about it. Generics and interfaces are a couple of topics I have in mind after I get a question that has been bugging me for a while out of my system. The answer is probably blindingly obvious to someone who already knows C#.
>>>>>
>>>>>Here is my question. When you instantiate an object, you do it like this:
>>>>>
>>>>>Circle cir = New Circle();
>>>>>
>>>>>Why does the class name occur twice? Why isn't the Circle() on the right sufficient to define the type of object being created?
>>>>>
>>>>>i.e. Why isn't it? ---
>>>>>
>>>>>cir = New Circle();
>>>>
>>>>Just a language design choice. If allowed it would be the equivalent of ' var cir = new Circle(); '
>>>>Regards,
>>>>Viv
>>>
>>>But why would they make such a design choice? It truly seems redundant to me, just extra typing.
>>>
>>>Tautology tt = New Tautology();
>>
>>Maybe the syntax was just for consistency. In some cases you might want to treat the object as a parent class or asan interface that it implements. e.g:
>>
>>ParentClass p = new ChildClass();
>
>I don't understand that at all -- instantiating a parent object based on a derived child class?
It's the other way around. You're instantiating the child class but it only exposes the properties and methods of the parent class.
Regards,
Viv
Précédent
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement