比如FromUin,ToUin,应该如何写类,使得在实例化的时候可以指定类型? 谢谢!

我希望写一个类,在实例化的时候可以这样

Message msg=new Message(FriendMessage);

FriendMessage是这个消息的类型。不同类型有不同属性。


慕码人8056858
浏览 109回答 2
2回答

哔哔one

class Message {    public Message(string type){        //这里判断不同的type进行初始化     } }

互换的青春

你给的信息还是有点模糊,下面是我的理解下写出的代码,希望能对你有所帮助!//运用LSP 原则+工厂方法  实现松耦合//类型public enum MessageType {     FromUin = 1,     ToUin = 2}//基类public abstract class Message{    //消息内容     string messge { get; set; }    public abstract void ShowInfo(); }public class FromUinMessage : Message{    //新增属性     public string Name { get; set; }    public override void ShowInfo()     {        //......     } }public class ToUinMessage : Message{    //新增属性     public string Color { get; set; }    public override void ShowInfo()     {        //......     } }public class UninService{    private Message _message;    public UninService(MessageType messageType)     {        this._message = UninFactory.GetMessageType(messageType);     }    public void ShowMessage()     {         _message.ShowInfo();     } }//工厂方法public class UninFactory{    public static Message GetMessageType(MessageType messageType)     {        switch (messageType)         {            case MessageType.FromUin:                return new FromUinMessage();            case MessageType.ToUin:                return new ToUinMessage();            default:                return null;//异常处理         }     } }
打开App,查看更多内容
随时随地看视频慕课网APP