小编lib*_*ibi的帖子

C#中的私有继承?

我是C#的新手,想知道C#中是否存在类似私有继承的东西(比如在C++中)?

我的问题如下:我想实现一个队列(将其命名为SpecialQueue),并进行以下更改:

  1. 队列具有可存储在其中的最大项目数.
  2. 如果队列已满并且您插入了一个新项目,则一个项目将自动从队列中取出(队列中的第一个项目),新项目将插入到队列的末尾.
  3. 队列提供的某些方法(例如peek())不应暴露给SpecialQueue的用户.

在c ++中,我会从队列中私有ihnerit,只暴露我想要的方法,并根据我的意愿改变其他方法.但不幸的是,队列中的所有方法都没有"覆盖"修饰符,我不知道如何在C#中实现它.

有帮助吗?

问候,丹

c# queue inheritance

8
推荐指数
1
解决办法
3251
查看次数

实现 INotifyCollectionChanged 接口

我需要实现一个具有特殊功能的集合。另外,我想将此集合绑定到 ListView,因此我最终得到了下一个代码(我在论坛中省略了一些使其更短的方法):

public class myCollection<T> : INotifyCollectionChanged
{
    private Collection<T> collection = new Collection<T>();
    public event NotifyCollectionChangedEventHandler CollectionChanged;

    public void Add(T item)
    {
        collection.Insert(collection.Count, item);
        OnCollectionChange(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
    }

    protected virtual void OnCollectionChange(NotifyCollectionChangedEventArgs e)
    {
        if (CollectionChanged != null)
            CollectionChanged(this, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想用一个简单的数据类来测试它:

public class Person
{
    public string GivenName { get; set; }
    public string SurName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以我创建了 myCollection 类的实例,如下所示:

myCollection<Person> _PersonCollection = new myCollection<Person>();
public myCollection<Person> PersonCollection
{ get { return _PersonCollection; } …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf observablecollection inotifycollectionchanged

5
推荐指数
1
解决办法
1万
查看次数