この種の「なぞなぞ」がプログラミングパズルとコードゴルフで話題になっていることを願っています。
以下のC#メソッドが返さfalse
れる状況の例を示します。
public class Giraffe : Animal
{
public bool Test()
{
return this is Giraffe;
}
}
規則:上記のコード行は決して変更してはなりませんが、「プロジェクト」がコンパイルされてメソッドが呼び出されるように、コードをアプリケーションに配置します。実行すると、メソッドはを返す必要がありfalse
ます。私が念頭に置いている解決策は、実行時または類似の「エキゾチックな」事でそれ自身のILを放出せず、通常のインスタンスメソッド呼び出しです。
@ JesseC.Slicerはい、私が念頭に置いているソリューションでは、その行は発生します。もちろん、私が考えもしなかった他のソリューションを見るのも面白いかもしれません。それで、もし何かがあれば、それを投稿してください!
—
ジェッペスティグニールセン
さて、私の単純な解決策はより似て
—
ジェシーC.スライサー
Animal giraffe = new Giraffe(); giraffe.Test();
おり、親クラスにAnimal
はTest()
を返すメソッドがありますfalse
。それはGiraffe
's ではなく親クラスメソッドを呼び出すため、少し不正です。しかし、通話サイトは同じように見えます。
@ JesseC.Slicerああ、なるほど。私はあなたの「解決策」では、「私の問題で言うように」「以下の方法」では
—
ジェッペスティグニールセン
false
なく、完全な解決策であるとは言いません。しかし、まだ興味深い。私のソリューションにはメソッドの非表示(ヒント)がありませんが、私が言ったように、他のソリューションも興味深い可能性があります。
Giraffe giraffe = new Giraffe(); giraffe.Test();
なければならないという意味ですか?