【问题标题】:List Trigger Event Error [duplicate]列出触发事件错误 [重复]
【发布时间】:2014-05-07 14:39:34
【问题描述】:

我有一个代码:

    public class _clientSockets<Socket> : List<Socket>
    {
        public event EventHandler OnAdd;

        public void Add(Socket s)
        {
            if (OnAdd != null)
                OnAdd(this, null);
            base.Add(s);
        }
    }

将尝试连接到服务器的每个客户端都将存储在列表中。我尝试使用以下代码调用它:

     _clientSockets<Socket> s = new _clientSockets<Socket>();
     s.OnAdd += new EventHandler(clientAlerted);
     s.Add(socket);

但问题是出现如下错误: " MainWindow._clientSockets.Add(Socket)' 隐藏继承的成员 'System.Collections.generic.List.Add(Socket)'。如果要隐藏,请使用 new 关键字。"

我该如何解决这个问题? :)

【问题讨论】:

  • 或从ObservableCollection&lt;T&gt; 继承而不是List&lt;T&gt;。 ObservableCollection 具有处理更改的机制...

标签: c#


【解决方案1】:

我该如何解决这个问题?

要么不要调用你的方法Add,要么不要从List继承。您可能会发现 composition 比 inheritance 更有效,因为客户可以将您的类视为普通的 List&lt;T&gt; 并绕过您的“新”Add 方法。

【讨论】:

    猜你喜欢
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2010-12-07
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多