无法找到正确的语法?

时间:2012-01-19 16:38:59

标签: c#

public static void CopyProperties<T1, T2>(T1 objA, T2 objB) where T1 : new()
{
}

此方法的上述签名编译,但我也想为T2添加相同的“新”条件

签名我已经尝试但不工作:

  public static void CopyProperties<T1, T2>(T1 objA, T2 objB) where T1, T2 : new()
  public static void CopyProperties<T1, T2>(T1 objA, T2 objB) where T1 : new(), where T2 : new()

4 个答案:

答案 0 :(得分:5)

public static void CopyProperties<T1, T2>(T1 objA, T2 objB) 
    where T1 : new()
    where T2 : new()
{
}

答案 1 :(得分:1)

只需在最后添加约束:

public static void CopyProperties<T1, T2>(T1 objA, T2 objB) where T1 : new() where T2 : new()
{
}

答案 2 :(得分:1)

试试这个:

 public static void CopyProperties<T1, T2>(T1 objA, T2 objB) 
 where T1 : new() 
 where T2 : new()

答案 3 :(得分:0)

此代码提取将为您提供所需内容,对于要为其添加约束的每种类型使用where关键字非常重要,新关键字需要是每种类型的最后一个约束。这是一个例子

static void CopyProperties<T1, T2>(T1 objA, T2 objB) 
            where T1 : class, new()
            where T2 : class, new()