On Monday, August 19, 2013 12:18:36 Borislav Kosharov wrote: > So if I want to have a string constant it is a lot better to > declare it as: > > static immutable string MY_STRING = "Some string"; > > Because it won't be duplicated?
Even if you copy-pasted "Some string" in your code thousands of times, only one string is allocated, which is one of the advantages of strings being immutable (the compiler can get away with allocating memory for string literals only once). But other array literals _do_ result in a new array allocated every time that they're in the code, and when you use an enum, its value is copy-pasted every place that it's used, resulting in a new allocation every time that it's used. So, using string enums is fine, but using other arrays as enums is usually a bad idea. - Jonathan M Davis
