У меня есть такой класс коллекции:
public class SomeDataCollection : List<ISomeData>
{
// some method ...
}
но я не могу этого сделать:
SomeDataCollection someDatas = new List<ISomeData>();
Невозможно неявно преобразовать тип
List<ISomeData>вSomeDataCollection. Существует явное преобразование (вам не хватает приведения?)
поэтому я пытаюсь создать неявное покрытие внутри класса коллекции SomeDataCollection:
public static implicit operator SomeDataCollection(List<ISomeData> l)
{
var someDatas = new SomeDataCollection();
someDatas.AddRange(l);
return someDatas;
}
но он сказал, что я не могу создать такой конвертер:
SomeDataCollection.implicit operator SomeDataCollection(List<ISomeData>): определяемые пользователем преобразования в базовый класс или из него запрещены
И когда я бросил это так:
SomeDataCollection someDatas = (SomeDataCollection)new List<ISomeData>();
он выдает ошибку, в которой говорится:
System.InvalidCastException: невозможно преобразовать объект типа
List<ISomeData>в типSomeDataCollection.
Как я могу это сделать:
SomeDataCollection someDatas = new List<ISomeData>();
без ошибки? Пожалуйста помоги. Заранее спасибо.