私は、ゲームで生成されたすべての異なる単位のすべてのオブジェクトを含むリストを作成したいが、それらはすべて同じクラスではない。メインクラスのサブクラスであれば、それらはすべて助けになるでしょう。しかし、基本的な機能を備えたメインユニットクラスを持っています。そして、剣士、パイクマンなどのためにもっとたくさんのクラスを用意しています。それは可能ですか?C# - さまざまな種類のオブジェクトの一覧
答えて
はい可能です。
ロブが彼のコメントで言ったように、あなたはList<SharedBaseClass>
を作る必要があります。
var someList = new List<SharedBaseClass>();
あなたは正しいサブクラスにキャストバックする必要がありますリストの特定の要素と対話しようとしている。
// throws an exception if type wrong
var someElement = (desiredSubClass) someList[someElementIndex];
// return null if type wrong
var someElement = someList[someElementIndex] as desiredSubClass;
Slvrfnのanwerは、正常に動作する必要があります。キャストが気に入らない場合、またはUnityでキャストするときにパフォーマンスが低下することが気になる場合は、サブクラスで変数を作成し、のthis
キーワードで初期化することもできます。あなたはもうキャストする必要はありません
public class MySubClass : SecondBase
{
public FirstBase firstBase;
public SecondBase secondBase;
public MySubClass()
{
firstBase = this;
secondBase = this;
}
}
:
public class FirstBase
{
public int speed = 50;
}
public class SecondBase : FirstBase
{
public int live = 5;
}
そして、あなたのサブクラス:
は、あなたはあなたが継承する2つのクラスがあるとしましょう。 MySubClass
の定義されたfirstBaseおよびsecondBase変数を使用できます。
List<MySubClass> subClass = new List<MySubClass>();
subClass.Add(new MySubClass());
FirstBase firstBase = subClass[0].firstBase;
SecondBase secondBase = subClass[0].secondBase;
この問題は、基本的にユニット型の配列を持ちたいので、呼び出すことができ、それぞれのtoherのすべてのサブクラスではありません。 –
あなたはあなたの質問でサブクラスだと言いました。 TBH、素晴らしい答えが必要な場合は、次回に質問にコードを入力してください。あなたが提供するサンプルは、あなたに何をしているかを伝えます。 – Programmer
- 1. C++ - さまざまな種類のオブジェクトの配列
- 2. さまざまな種類のC#6で
- 3. Javaのメソッドからさまざまな種類のオブジェクトを返す方法は?
- 4. さまざまな種類のケースは何ですか?
- 5. Androidのさまざまな種類のブロードキャストの違い
- 6. Android:GSONでさまざまな種類の値を扱います
- 7. Haskell - さまざまな種類のリストをシャッフルしますか?
- 8. ラケットのさまざまな種類の継続
- 9. さまざまな種類のカタルシスの関係?
- 10. SSASのさまざまなタイプの種類
- 11. 角2:さまざまな種類のスラグでのルーティング
- 12. 計算さまざまな種類 - パンダ/ numpyの - Pythonの
- 13. CakePHPのさまざまな種類のユーザーセッション
- 14. Word文書内のさまざまな種類のハイパーリンク
- 15. さまざまな種類のマルチメディア用のカスタムサムネイル
- 16. さまざまな種類の機能を組み合わせる(テキスト分類)
- 17. ワードプレスでさまざまな種類のユーザーアカウントを追加する
- 18. さまざまな種類の機能を持つDjangoモデル
- 19. Useragent文字列を含むさまざまな種類のログ?
- 20. Javaサーブレット:さまざまな種類の属性
- 21. PHPにさまざまな種類のファイルを含める
- 22. さまざまな種類のJson逆シリアル化
- 23. さまざまな種類のJavaクラスは何ですか?
- 24. さまざまな種類のユーザーによるSpringセキュリティ認証
- 25. C#カスタムアプリケーションでさまざまな種類の認証を提供する
- 26. さまざまな種類のさまざまなソースからのデータの結合
- 27. さまざまな種類のユーザーの登録フォームが異なります
- 28. さまざまな種類のデータ型をサポートするデータ構造
- 29. ファイルからさまざまな種類のデータを読み取る方法
- 30. は、アンドロイドのさまざまな種類の通知を処理します。
しかし、サブクラスの情報はないでしょうか? –
もちろん、完全なオブジェクトを追加することもできます。あなたはそれを取得するときに、希望のオブジェクトにキャストする必要があります。 – NikxDa
オブジェクトのリストのリストを作成することをお勧めします。すべてのオブジェクトをトラバースする必要がある場合、オーバヘッドは非常に小さくなります(メインリストのすべてのリストをトラバースしながら)。しかし、独自のリスト内の特別なオブジェクトタイプをトラバースすると、すべてのオブジェクトで1つの大きなリストをトラバースするよりもはるかに高速になります。 – crea7or