您可以使用通用接口。例如,
public interface IMessage<T>
{
T content { get; }
string sender { get; }
DateTime sent { get; }
}
现在您可以将您的类定义为
public class StringMessage:IMessage<string>
{
public string content { get; }
public string sender { get; }
public DateTime sent { get; }
}
public class FileMessage:IMessage<FileInfo>
{
public FileInfo content { get; }
public string sender { get; }
public DateTime sent { get; }
}
public class ImageMessage:IMessage<Image>
{
public Image content { get; }
public string sender { get; }
public DateTime sent { get; }
}
或者,您可以定义一个通用类 Message,但是,这将取决于该类的其他职责。如果类之间的唯一区别是内容的类型,您也可以使用以下内容(取决于您的用例)。下面的示例使用单个泛型类来实例化不同的实例(基于字符串、图像、文件)。
public class Message<T>:IMessage<T>
{
public T content { get; }
public string sender { get; }
public DateTime sent { get; }
}
您现在可以将不同的实例初始化为
var fileMessage = new Message<FileInfo>();
var stringMessage = new Message<String>();
var imageMessage = new Message<Image>();