我感觉没有区别。只是readonly不能在初始化以外的地方修改。
如楼主的反射修改了没并没有什么卵用,一点不影响lock效果吧。(说明具体我也不清楚,等做个测试)
测试做完了两个的没有太大的区别,区别就是加了readonly改变值要复杂一些,其实两个改变值效果都一样。
@gw2010: 谢谢你的回答,当时的应用场景确实出现了不同,而且可以稳定的出现,加了readonly后问题解决了,我现在写测试想再次重现,却没出现,出现后在发帖。
readonly是可以修改的哦,反射就可以修改它的值
private static readonly object obj =1;
static void Main()
{
Console.WriteLine(data);
mod();
Console.WriteLine(data);
}
static void mod()
{
var fieldInfo = typeof(Program).GetField("obj ", BindingFlags.Static |BindingFlags.NonPublic);
fieldInfo.SetValue(null, "哈哈哈哈");
}
谢谢指导,是我误会了,反射确实做到了,再一次见识到反射的强大。