我有3個對象類:如何在一個變量中實現不同的類類型?
public class MessageData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public string EmployeeInfo { get; set; }
}
public class MultiMessageData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public byte MessageType { get; set; }
public string MessageType { get; set; }
public string Platform { get; set; }
public string EmployeeInfo { get; set; }
}
public class SocialData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public bool IsReceived { get; set; }
public byte MessageType { get; set; }
public string MessageType { get; set; }
public string Message { get; set; }
public string UserName { get; set; }
}
然後,我有一個功能,現在只實現MessageData類:
public void SendData()
{
List<MessageData> data = new List<MessageData>();
// some work here with data variable...
_sendRepository.Send(data);
}
現在我需要的是讓大部分的邏輯,但一種方式我可以實例化一個變量,可以是任何類的類型,例如:
public void SendData()
{
var data;
if(logic == 1){
data = new List<MessageData>();
} else if(logic == 2){
data = new List<MultiMessageData>();
}else {
data = new List<SocialData>();
}
// some work here...
// if I do that then this Send method I will change it to be a Generic T maybe.
_sendRepository.Send(data);
}
任何線索?
繼承我推定? –
你可以使用泛型方法嗎?我的意思是你可以將'SendData'的定義交換到'SendData',並通過你的'邏輯'調用閉合的類型。 –
使用接口。 – zzzzBov