Применение статического метода выдает ошибку компиляции - 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д