私は "マリオ"ビデオゲームを作成しようとしています。交差オブジェクトを取得するために、教師は私たちに例証デモを提供しました。これは、オブジェクトが完全に他のオブジェクトに触れるかどうかを検出し、メソッドが検出したものが返されます。現在のオブジェクトが現在触れているすべてのオブジェクトの配列を返すことを試みています。されている配列私は現在、それに触れるすべてのオブジェクトの配列を返すことができたが、今私は、アレイが必要な型のオブジェクトが含まれているかどうかをチェックするための簡単な/効率的な方法を必要とし、そのよう配列に特定のクラスが含まれている場合、どのように配列を尋ねますか?
if (array.Contains(Mario))
{
//Do Work here
}
としてそれが(Mario)が含まれているかどうかをチェックすると、交差するスプライトの配列が返されますが、実際にMario型のオブジェクトが含まれているかどうかを尋ねると「Error 14 'WindowsGame10.Mario'は 'type' '変数' "私はforループでこれを行うことができ、配列内の個々のインデックスif (array[i].GetType() == typeof(Mario))
を尋ねることができますが、コード内でこのチェックを行い、同じコードを何度も何度も再入力する必要がある回数は、私はこれを実行するより効率的な方法を学ぶ必要があります。私はコンピュータプログラミングの初年度にあり、C#XNAで作業しています。理解できる解決策が必要です。これを行うより良い方法がある場合は、私に知らせてください。あなたが行うことができますLINQのを使用して
if (array.OfType<Mario>().Any())
{
あなたはいつもちょうど方法でそのループを包むことができます:
次のように使用されるでしょう:ちょうど別のアプローチを提供するために、次のような拡張メソッドを定義することができます。 – prelic