亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

比如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 關注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號