Why isn’t String.Empty a constant?

The reason that static readonly is used instead of const is due to use with unmanaged code, as indicated by Microsoft here in the Shared Source Common Language Infrastructure 2.0 Release. The file to look at is sscli20\clr\src\bcl\system\string.cs. The Empty constant holds the empty string value. We need to call the String constructor so that … Read more

Why can’t radio buttons be “readonly”?

Radio buttons would only need to be read-only if there are other options. If you don’t have any other options, a checked radio button cannot be unchecked. If you have other options, you can prevent the user from changing the value merely by disabling the other options: <input type=”radio” name=”foo” value=”Y” checked> <input type=”radio” name=”foo” … Read more

What are the benefits to marking a field as `readonly` in C#?

I don’t believe there are any performance gains from using a readonly field. It’s simply a check to ensure that once the object is fully constructed, that field cannot be pointed to a new value. However “readonly” is very different from other types of read-only semantics because it’s enforced at runtime by the CLR. The … Read more

In a Django form, how do I make a field readonly (or disabled) so that it cannot be edited?

As pointed out in this answer, Django 1.9 added the Field.disabled attribute: The disabled boolean argument, when set to True, disables a form field using the disabled HTML attribute so that it won’t be editable by users. Even if a user tampers with the field’s value submitted to the server, it will be ignored in … Read more

Declare a const array

Yes, but you need to declare it readonly instead of const: public static readonly string[] Titles = { “German”, “Spanish”, “Corrects”, “Wrongs” }; The reason is that const can only be applied to a field whose value is known at compile-time. The array initializer you’ve shown is not a constant expression in C#, so it … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)