The expression being assigned to '[something] must be constant when using integers inside strings
I've stumbled upon a very funny exception today. Basically I was creating a constant string from adding some other constant strings to each other. And it worked. The moment I added an integer, though, I got
So, what's going on? Well, my code transforms behind the scenes into
The only way to solve it was to declare the numeric constant as string as well.
The expression being assigned to 'Program.x2' must be constant. The code that generated this error is simple:
const string x2 = "string" + 2;Note that
const string x2 = "string" + "2";is perfectly valid. Got the same result when using VS2010 and VS2015, so it's not a compiler bug, it's intended behavior.
So, what's going on? Well, my code transforms behind the scenes into
const string x2 = "string" + 2.ToString();which is not constant because of ToString!
The only way to solve it was to declare the numeric constant as string as well.
Comments
Be the first to post a comment