リストに新しい項目を追加する関数に一般的なリストを渡そうとしています。私は次のような単純化された例を持っています:
private void SetBayNumb<T>(ObservedList<T> bayList) where T : IBaySpec, new()
{
var bay = new T();
bayList.Add(bay);
}
それを呼び出すメソッドに次のエラーがあります。
T' must have a public parameterless constructor in order to use it as parameter
ジェネリック型またはメソッドの型T'
私がやろうとしていることは可能ですか?コンパイラは、それがどのようなリストであるかを気にするべきではないので、それはそうあるべきだと思います.パブリックのパラメータなしのコンストラクタを呼び出して、渡された既存のリストに新しいインスタンスを追加するだけです.
問題は、インターフェイスが実装者にパブリックコンストラクターがあることを保証していないことだと思いましたが、具体的なクラスを指定しても、次のエラーが発生します。
T' must be convertible to
ジェネリック型またはメソッドでパラメータ `T' として使用するためのタイプBayClass'
任意のポインタに非常に感謝します。