在软件升级,新老版本兼容时, 通过 增加新的配置字段,如果有值,执行新的逻辑。如果为空,走原始逻辑。
如上策略在某个项目中,如下示例,报错:
bool isSelectTableLane = "F01".Equals(System.Configuration.ConfigurationManager.AppSettings["SHOPFLOOR"].Trim());
后来发现是 Trim() 造成的。 Equals() 方法充许与 null 比较 。 但 字符串对象 执行 trim() 时,要求对象本身必须已经初使化。