c# - How to declare a const field of a generic value type provided as generic argument -
i'm trying define generic class accept argument value type (actually enum) , initialize const field it's default type.
i want like:
public abstract class genericclass<valuetype> valuetype: struct, iconvertible { public const valuetype val = default(valuetype); }
unfortunately compiler complaints (i'm using mono think it's same on .net). error following:
error cs1959: type parameter `valuetype' cannot declared const
what's error?
type parameter not allowed constant type.
because struct
cannot made const
(from c# specification 10.4 constants)
the type specified in constant declaration must
sbyte
,byte
,short
,ushort
,int
,uint
,long
,ulong
,char
,float
,double
,decimal
,bool
,string
, enum-type, or reference-type.
a kind of workaround limitation declare static
readonly
.
public static readonly valuetype val = default(valuetype);
Comments
Post a Comment