当某个字段是引用类型,且该字段是readonly类型时,那么不可改变的是引用,而非引用的对象。如以下代码:
public sealed class AType { public static readonly char[] InvalidChar=new char[]{'A','B','C'}; } public sealed class AnOtherType { public static void M() { //下面三行代码是合法的,可通过编译,并可成功 //修改InvalidChailChar中的字符 AType.InvalidChar[0]='X'; AType.InvalidChar[1] = 'Y'; AType.InvalidChar[2] = 'Z'; //下一行代码非法,无法通过编译 //因为无法让InvalidChar引用别的什么东西 AType.InvalidChar = new char[] { 'X', 'Y', 'Z' }; } }