あらゆる型のリストを受け取る関数を作りたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cd

あらゆる型のリストを受け取る関数を作りたい

#1

投稿記事 by cd » 3年前

C#で任意のリスト型の変数を受け取って処理する関数を作りたいです。
引数をProccess(Type x){}
これだとできないのですが、間違っているのは何故ですか?

hide

Re: あらゆる型のリストを受け取る関数を作りたい

#2

投稿記事 by hide » 3年前

目的がよくわからず適切に回答しづらいです。何がしたいのかわかりやすく書いてください。
任意なのにListなのですか?
任意の型引数を持つListですか?
Listを継承した任意の引数ですか?

ちなみに

コード:

Proccess(Type x){}
こう定義した場合は素直に読むと、Type型の引数xを受け取るProcessというメソッドですね。
Typeというのは型自体を表すクラスです。
クラス名とかを取得できるやつですね。
https://msdn.microsoft.com/ja-jp/librar ... .110).aspx
オフトピック
私がリストの処理を書くときは、引数で受け取るということはあんまりやらないです。
privateに持つlistをいじる、Linqで処理しちゃう、で充分なので。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: あらゆる型のリストを受け取る関数を作りたい

#3

投稿記事 by YuO » 3年前

文をそのまま読むと,

コード:

void func<T> (IList<T> args) { /* ... */ }
とかやりたいのかなぁ,と思ったり。
あ,でもこれだとIReadOnlyList<T>をとれないか……。

コード:

void func<T> (IEnumerable<T> args) { /* ... */ }
と,IE<T>にすればIList<T>とIReadOnlyList<T>を両方取れますし,

コード:

void func (IEnumerable args) { /* ... */ }
とIEにすればIListまで使えますが……。

--
20170425T0955+0900 modified: codeの言語指定間違いを修正

返信

“C言語何でも質問掲示板” へ戻る