任何VBNET等价的C#哪里有泛型约束关键字?

Wil*_*ler 15 generics c#-to-vb.net .net-2.0

首先,我希望自己编写一个针对底层Active Directory的操作的泛型类型.

对于那些了解AD和System.DirectoryServices命名空间的人来说,DirectoryEntry类DirectorySearcher类一起是最重要的.

说到AD语言时,一切都是DirectoryEntry.话虽如此,我的应用程序需要管理用户,组和组织单位(OU).这些对象中的每一个都是AD条目.然后,这对我来说是GenericTypes的一个很好的候选者.

我想要完成的是:

public interface ITop {
    string Path { get; set; }
    string ObjectClass { get; }
    string ContainerName { get; set; }
    // [...]
}

public interface IGroup : ITop {
    // Speciality properties here...
}

public interface IUser : ITop {
    // Speciality properties here...
}

// And so forth...

public sealed class DirectorySource<T> where T : ITop {
    // Methods against AD here...
}
Run Code Online (Sandbox Code Playgroud)

我的班级图书馆必须回应以下有机标准:

  1. VS2005 VBNET
  2. .NET 2.0
  3. 活动目录
  4. Windows窗体

好吧,我想我已经提出了太多关于我的问题的细节,但是对于架构和设计模式的任何建议都是受欢迎的.我的问题是:

是否存在VBNET 2.0等价的C#where(泛型约束)关键字,还是任何最佳实践解决方法?

我的搜索结果似乎以可撤销的结论结束.所以我问......

SLa*_*aks 37

像这样:

Public Class DirectorySource(Of T As ITop)
Run Code Online (Sandbox Code Playgroud)

括号包含多个约束,如下所示:

Public Class DirectorySource(Of T As { ITop, IDisposable, Class, New })
Run Code Online (Sandbox Code Playgroud)

  • @ChaosPandion:通用约束是anded,而不是orored. (6认同)