代码之家  ›  专栏  ›  技术社区  ›  Theofanis Pantelides

可变长度参数c#

  •  5
  • Theofanis Pantelides  · 技术社区  · 14 年前

    这可能是不可能的,但这里有:

    我想创建一个结构,在这里我可以定义声明的参数数量。

    例如,现在我使用:

    KeyValuePair<T, T>
    

    但是keyvaluepair只能获取密钥和值。

    有没有可能做出如下的事情:

    CustomValues<T, {T, {..}}>
    

    我想这是不可能的,但也许我只是不知道足够的C。 我也愿意接受聪明的解决办法,

    谢谢你

    4 回复  |  直到 14 年前
        1
  •  3
  •   Mark Seemann    14 年前

    不,这是不可能的,正如 Func<T> , Func<T, TResult> , Func<T1, T2, TResult> 等。

        2
  •  1
  •   Oded    14 年前

    但是,您的kvp值类型也可以是泛型的:

    KeyValuePair<T, List<U,V>>
    

    或:

    KeyValuePair<T, KeyValuePair<U,V>>
    
        3
  •  1
  •   Asad    14 年前

    你可以试试这个

    public class CustomClass
        {
         KeyValuePair<T , KeyValuePair<T, V>> setOfArguments;
         public CustomClass(KeyValuePair<T, KeyValuePair<T, V>> _setOfArguments)
          {
            setOfArguments = _setOfArguments;
          }       
        }
    
        4
  •  0
  •   Naeem Sarfraz    14 年前

    这对你有用吗?

    public void UseParams(params KeyValuePair<String, String>[] list) {
         ...
    }