オブジェクトのコレクションがあります
あなたが書くとき
Collection<object>
これは、任意のオブジェクト を含むことができるコレクションを定義していることを意味します。
それを行うと、次のようなことができます
inputObject.Add(new MyDefinedObject());
inputObject.Add(new StringBuilder()));
コレクションにはさまざまなタイプがあります。
コレクションの特定の要素を確認する
そのコレクション内の特定のオブジェクトのタイプをテストしたい場合は、次のようにすることができます
Type t = inputObject[0].GetType();
また
if (inputObject[0] is MyDefinedObject)
コード
if (inputObject is Collection<MyDefinedObject>)
すでに定義されているため、真になることはありません
private Collection<object> inputObject;
コレクションinputObjectの型を定義したことを意味しますCollection<object>
コレクション内のすべてを MyDefinedObject にしたい場合はどうすればよいですか?
質問の下のコメントに基づいて、これはあなたが本当に望んでいるものです...
private Collection<MyDefinedObject> inputObject;
表示されるエラー メッセージ
しかし、指定された式が期待されるタイプではないという下線付きの警告が表示されます
これは、inputObject がCollection型Collection<object>
ではないtype であるためです。それは、リンゴは決してバナナではないと言っているようなものです。
より良いアプローチ
ジェネリックを使用していて、ジェネリック コレクションを受け取っている場合、そのコレクションを処理するジェネリック関数を作成してみませんか?
private void ProcessCollection<T>(Collection<T> inputObject)
{
}
// Somewhere else in your code...
Collection<MyDefinedObject> inputObject = // Initialize this however you do now
ProcessCollection<MyDefinedObject>(inputObject);