В настоящее время я пытаюсь превратить суперкласс в один из его подклассов, используя дженерики, но безуспешно. Должен ли я просто изменить интерфейс на класс снова и использовать суперкласс. Я понятия не имею, как это сделать.
public static Boolean AddorUpdateItem<T>(int id, String database, ref T item) where T : Item
{
if(typeof(T) == typeof(Person)){
if (ReturnItem(id, database) == null)
{
ChangeType(Item item, Person person);
Person person = new Converter<Item, Person>(item);
return PersonOperations.AddPerson(item);
}
else
{
return PersonOperations.UpdatePerson(id, item);
}
}
return false;
}
Класс изделия
public class Item
{
public string Name{
get;
set;
}
public int ID{
get;
set;
}
}
Персональный класс
public class Person : Item
{
private int reward_point;
public String FName
{
get;
set;
}
//More variables below.
Я хочу, чтобы этот тип элемента был превращен в тип человека, чтобы методы .addPerson или .updatePerson могли принимать этот класс. Или, говоря другими словами, я хочу, чтобы метод addorupdate принимал отдельные объекты, которые являются подклассом суперкласса Item. После этого он попытается определить его тип и отправить объект другому методу, предназначенному для этого объекта.