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

时间:2010-05-10 15:29:47

标签: generics .net-2.0 c#-to-vb.net

首先,我希望自己编写一个针对基础Active Directory的操作的泛型类型。

对于那些了解AD和System.DirectoryServices namespace的人,DirectoryEntry class与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...
}

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

  1. VS2005 VBNET
  2. .NET 2.0
  3. Active Directory
  4. Windows窗体
  5. 嗯,我想我已经为我的问题提供了太多细节,但是对于架构和设计模式的任何建议也是受欢迎的。我的问题是:

    是否存在C# where (generic type constraint)关键字的VBNET 2.0等效项,或任何最佳实践解决方法?

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

1 个答案:

答案 0 :(得分:35)

像这样:

Public Class DirectorySource(Of T As ITop)

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

Public Class DirectorySource(Of T As { ITop, IDisposable, Class, New })