Save a type in a variable

Kirk McDonald kirklin.mcdonald at gmail.com
Thu Jan 25 14:31:09 PST 2007


Pragma wrote:
> Heinz wrote:
> 
>> Hi, i have a class and i need to retrieve a type as a parameter in its 
>> constructor, example: (can be made easily in c#)
>>
>> class myclass
>> {
>>         type mytype;
>>                 this(type t)
>>         {
>>                  mytype = t;
>>         }
>> }
>>
>> I don't have a single approach to do this. i need a clue pliss? an 
>> example woyld be great hehe, thx
> 
> 
> You want to use 'TypeInfo' at runtime (instead of 'type'), and use 
> typeof(T) at compile time:
> 
> for example:
> 
> TypeInfo mytype = typeof(int);
> 
> 

That should be:

TypeInfo mytype = typeid(int);

typeid() returns a type's TypeInfo at runtime. typeof() infers the type 
of an expression at compile-time.

Note that TypeInfo is just information about a type. (You can compare 
the TypeInfos of two items to see if they are the same type.) You cannot 
create variables of a type with just its TypeInfo. (That kind of 
trickery is what templates are for.)

-- 
Kirk McDonald
Pyd: Wrapping Python with D
http://pyd.dsource.org


More information about the Digitalmars-d-learn mailing list