c# - CS0133 "The expression being assigned to 'identifier' must be constant" - what's the reason behind that? -
With many C ++ backgrounds I have been used to write the following:
< Code> Const int count = ...; // Some non-trivial stuff here (int i = 0; ii ++) {...}
and I hope the same works fine in C # Will do However ...
byte [] buffer = new byte [4]; Const int count = buffer.Length;
produces error CS0133: the expression being assigned to 'count' should be continuous .
I do not get this. Why is it invalid? int
is a value type, is not it? Why can not I specify a price and can not make variable changes in this way?
Because const
in C ++ in const < / Code> is more
const
;)
indicates continuous expression of compilation-time in C #, const
. This will be similar to this C ++ code:
enum {count = buffer.Length; }
Because There is a buffer. Length is evaluated on runtime, it is not a continuous expression, and therefore it will generate a compilation error.
readable
keyword in C # which is slightly more like C ++'s const
. (It is still very limited, and there is no such thing as const-correctness in C #)
Comments
Post a Comment