ジェネリックキャストの「Value of Type 'T' Cannot Be Converted」エラーの解決
「Value of type '」形式のエラー メッセージ「T' を変換できません」は、ジェネリック型パラメーターをジェネリック内の特定の型にキャストしようとすると発生することがあります
次のメソッドを考えてみましょう:
T HowToCast<T>(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; }
このコードは、ジェネリック パラメーター T が文字列型の場合、入力変数 t を文字列にキャストしようとします。ただし、コンパイラは次の制限によりエラーを生成します:
この問題を解決するには、キャストで次の 2 つのステップを使用する必要があります。アプローチ:
修正されたものコードは:
T newT1 = (T)(object)"some text"; string newT2 = (string)(object)t;
以上が汎用 C# メソッドでの「型 'T' の値は変換できません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。