2

ジェネリックを使用してさまざまな値を保持するストレージクラスがあります。

public class Setting<T>
{
    ...
}

別のクラスでは、次のようなメソッドを作成したいと思います

  public Setting<T> getSetting(string setting)
  {
        return (Setting<T>)settingDictionary[setting];
  }

settingsDictionaryはどこにありますか

 private Dictionary<string, object> settingDictionary;

エラーが発生します:

タイプまたは名前空間の名前「T」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

これを解決する方法はありますか?ありがとう

4

3 に答える 3

3

メソッドをジェネリックにする必要があります。

 public Setting<T> GetSetting<T>(string setting)
 {
   // ... Your code...
于 2013-01-23T17:20:33.943 に答える
1

クラスSetting<T>は実装されていないDictionary<string, object>ため、メソッドを次generic typeのよう に作成する必要がありますGetSetting<T>

public Setting<T> GetSetting<T>(string setting)
 {

 }

これがDEMOです。

于 2013-01-23T17:21:11.057 に答える
0

コンパイラは「」が何であるかを知りませんT。次のようなメソッドでジェネリックとして定義できます。

public Setting<T> getSetting<T>(string setting)
于 2013-01-23T17:22:34.387 に答える