[解決済み] 汎用クラスやメソッドのメンバからTの型を取得する方法
2022-03-23 01:37:23
質問
クラスやメソッドにジェネリックメンバーがあるとすると、以下のような感じです。
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
クラスをインスタンス化すると
T
は
MyTypeObject1
というように、このクラスは一般的なリストプロパティを持ちます。
List<MyTypeObject1>
. 非ジェネリッククラスにあるジェネリックメソッドについても同様です。
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
私のクラスのリストがどのような種類のオブジェクトを含んでいるかを知りたいのです。つまり、どのようなタイプの
T
というリストプロパティは
Bar
またはローカル変数
baz
が含まれているか?
ができません。
Bar[0].GetType()
というのも、リストには0個の要素が含まれる可能性があるからです。どうすればいいのでしょうか?
どのように解決するのですか?
私の理解が正しければ、あなたのリストはコンテナ・クラス自身と同じタイプ・パラメータを持っています。もしそうであれば
Type typeParameterType = typeof(T);
という幸運な状況にあるのなら
object
を型パラメータとして使用する場合は
マルクの回答
.
関連
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] 汎用型Tのクラスインスタンスを取得する方法を教えてください。
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
-
[解決済み】Java:ジェネリック型からクラスリテラルを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み] C# generic list <T> Tの型を取得する方法は?重複