2017-11-06 38 views
2

私は、コンパイルエラーになっています:これを修正するにはどうすればよいですか?

は「型または名前空間名 『T』が見つかりませんでしたが(あなたがusingディレクティブまたはアセンブリ参照が不足している?)
エラー3型または名前空間名 ' S」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足している?)以下は

は私のコードです:あなたは、あなたのようメソッドをマークする必要があり

public static List<T> AutoCopyList(List<S> lst) 
{ 
    List<T> ModelF = new List<T>(); 
    foreach (var item in lst) 
    { 
     var e = new T(); 
     e = Commn.AutoCopy<T, S>(item); 
     ModelF.Add(e); 
    } 
    return ModelF; 
} 

答えて

4

一般的な方法及びTは、公共のパラメータなしのコンストラクタが必要明示的な状態:

public static List<T> AutoCopyList<S,T>(List<S> lst) where T : new() 

新しい制約、where T : new()に関する更なる情報についてはを見hereを持っていてください。

+0

私はあなたが関数内で第二のタイプを保つお勧め: 'パブリック静的リスト AutoCopyList (一覧 LST)T1は、ここで新しい()' – fharreau

+0

@fharreauおっとちょうどそれを見ました。ありがとう!私はそれを訂正した。 – Christos

+3

これはコンパイルされません。関数内でタイプSを宣言していません。そして、非総称リストの代わりにTのListを返すことで、宣言を改善することができます。 – fharreau

関連する問題