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