次のコードがコンパイラ警告を生成する必要があるかどうかに関する1つの質問(生成されません)。これは、同じ名前/戻りタイプの2つのメソッドを宣言します。1つには、デフォルト値を持つ追加の名前付き/オプションのパラメーターがあります。
注:ルールでは最初のメソッドが呼び出されることが明確に示されているため、技術的には解決策はあいまいではありません。ここ、過負荷解決、3番目の箇条書きを参照してください。この振る舞いも私には直感的です、疑いの余地はありません。
public void Foo(int arg) { ... }
public void Foo(int arg, bool bar = true) { ...}
Foo(42); // shouldn't this give a compiler warning?
ここでは、コンパイラの警告は直感的なものになると思います。コードは技術的にはクリーンですが(サウンドデザインかどうかは別の質問です:))。