为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕码人8056858 2023-04-15 13:09:35
我希望写一个类,在实例化的时候可以这样Message msg=new Message(FriendMessage);FriendMessage是这个消息的类型。不同类型有不同属性。
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

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


查看完整回答
反对 回复 2023-04-19
?
互换的青春

TA贡献1797条经验 获得超6个赞

你给的信息还是有点模糊,下面是我的理解下写出的代码,希望能对你有所帮助!

//运用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;//异常处理
        }
    }
}


查看完整回答
反对 回复 2023-04-19
  • 2 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信