Применение статического метода выдает ошибку компиляции - C#
Формулировка задачи:
Здравствуйте. Есть примерно такая система:
Далее, пытаюсь применить это:
Выдает ошибку компиляции "Argument '1': cannot convert from .....List<"мой_проект".FirstStoreItem >' to 'System.Collections.Generic.List<"мой_проект".StoreItem>'" для первого применения метода GetUniqOid или соответствующее для второго. Подскажите, пожалуйста, как правильно исправить, чтобы работало. Если необходимо пояснение, то в этом методе генерится, уникальный для переданной колекции объектов реализующих класс StoreItem, Oid.
public abstract class StoreItem {
public int Oid { get; set; }
}
public class FirstStoreItem : StoreItem{
public string First { get; set; }
}
public class SecondStoreItem : StoreItem{
public string Second { get; set; }
}
public class DataStore {
public static int GetUniqOid(List<StoreItem> storeItemList) {
int result;
..................
return result;
}
public List<FirstStoreItem > FirstStoreItemList { get; set; }
public List<SecondStoreItem > SecondStoreItemList { get; set; }
} [STAThread]
static void Main() {
DataStore dataStore = new DataStore();
dataStore.FirstStoreItemList = new List<FirstStoreItem >();
dataStore.SecondStoreItemList = new List<SecondStoreItem >();
//ну и, например, применяю статичный метод
int oid1 = DataStore.GetUniqOid(dataStore.FirstStoreItemList);
//или
int oid2 = DataStore.GetUniqOid(dataStore.SecondStoreItemList );
}Решение задачи: «Применение статического метода выдает ошибку компиляции»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleTest {
public abstract class StoreItem {
public int Oid { get; set; }
}
public class FirstStoreItem : StoreItem {
public string First { get; set; }
}
public class SecondStoreItem : StoreItem {
public string Second { get; set; }
}
public class DataStore {
public static int GetUniqOid(IEnumerable<StoreItem> storeItemList) {
int result = 0;
return result;
}
public List<FirstStoreItem> FirstStoreItemList { get; set; }
public List<SecondStoreItem> SecondStoreItemList { get; set; }
}
class Program {
static void Main(string[] args) {
DataStore dataStore = new DataStore();
dataStore.FirstStoreItemList = new List<FirstStoreItem>();
dataStore.SecondStoreItemList = new List<SecondStoreItem>();
int oid1 = DataStore.GetUniqOid(dataStore.FirstStoreItemList);
int oid2 = DataStore.GetUniqOid(dataStore.SecondStoreItemList);
}
}
}