如果我有一个像

public void usefulUtility(parameters...) {
    string c = "select * from myDB";
    do_a_database_call(c);
}

这在很多地方都有使用,如果将其更改为:
public bool usefulUtility(parameters...) {
   string c = "select * from myDB";
   bool result = do_a_database_call(c);
   return result;
}

这可能会破坏密码吗?
我想不出什么…但有可能吗?

最佳答案

是的,实际上任何可能影响公共接口的事情都是一个突破性的改变。它可能很小,以至于你不在乎,没有人,或者几乎没有人,会碰巧碰到关键的案例,但是eric lippertexplains有一些边缘案例(其中许多涉及类型推断),甚至会导致这些看似无害的改变破裂。
对于您的特定示例,该更改将破坏此代码。

Action a = usefulUtility;

08-04 15:53