1 つのソリューションに 2 つのプロジェクトがあります。Project1とProject2と言います。Project1 には抽象クラスとその実装のみが含まれ、Project2 への参照として追加されます。関数の 1 つであるProject1 のClass1のConnect()は、次のように定義されています。
public bool Connect() { ...TCP connection code }
Project2 では、 Object1の Connect 関数は次のように呼び出されます。
if (carlValentin.Connect() != false) {...}
IDE として Visual Studio 2010 を使用しています。
ここに奇妙さがあります。構成としてデバッグを選択すると、すべてがうまくいき、コンパイルが完了し、アプリケーションが実行されます。ただし、構成をReleaseに切り替えると、次の関数の戻り値の型エラーが発生します。
Operator != cannot be applied to the operands of type void and bool
.
Project1 には、Connect 関数の他のオーバーロードされたメソッドは含まれていません。前述のとおり、Project2 は Project1 に依存しています。Connect の以前の定義では戻り値の型として void があったため、私が行った変更に問題があるのではないかと思います。しかし、Project1 が最初にコンパイルされてから Project2 がビルドされるように、プロジェクトのビルド順序が構成されていることは確かです。