[英]C# Changing a generic Class to a subclass
我目前正在嘗試使用泛型將超類更改為其子類之一,但沒有成功。 我是否應該再次將接口更改為類並使用超類。 我不知道該怎么做。
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超類的子類的單個對象。 接下來,它將嘗試確定其類型,並將對象發送到圍繞該對象設計的其他方法。
我真的不喜歡您的方法,但是如果您已經檢查過類型,則可以只投射對象。
if(typeof(T) == typeof(Person))
{
Person person = (Person) item;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.