代码之家  ›  专栏  ›  技术社区  ›  Fionn

CodeDom泛型类型约束

  •  12
  • Fionn  · 技术社区  · 17 年前

    是否有一种方法可以使用CodeDom生成类约束。

    var method = new CodeMemberMethod();
    var genericParam = new CodeTypeParameter("InterfaceType");
    genericParam.Constraints.Add("class");
    method.TypeParameters.Add(genericParam);
    

    生成的代码如下所示

    private InterfaceType GetImpl<InterfaceType>()
        where InterfaceType : @class
    {
    }
    

    我发现最好的解决方法是在上课前使用前导空格

    genericParam.Constraints.Add(" class");
    

    2 回复  |  直到 17 年前
        1
  •  7
  •   Massimiliano    17 年前

    for the "struct" constraint .

    对于“T:new()”约束,使用标志 HasConstructorConstraint

    this msdn example .

        2
  •  1
  •   IS4    14 年前

    我也使用零宽度空间( "\x200Bclass" .Replace("\x200B", string.Empty);