C#怎么定义可选参数的函数?调用时注意什么?

解决方案 »

  1.   

    原来学vb的?呵
    可选参数
    用params string[] abc
    这样的参数可以满足不定个数的string参数啊。不知道是不是你要的。
    另外,重载也可以实现一些类似你的要求,根据需要选了
      

  2.   

    public int Sum(params int[] values)
    {
    }Sum(0);
    Sum(1,2,3);
    Sum(2,3,4,5,6);
    都可以
      

  3.   

    C#中没有可选参数,参数没有默认值。可以用overload来实现你的功能。
      

  4.   

    用重载就可以啊!
    private void GetData(string aaa)
    {}
    private void GetData(int bbb)
    {}
    private void GetData(int bbb,string aaa)
    {}
      

  5.   

    params 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。示例
    // cs_params.cs
    using System;
    public class MyClass 
    {   public static void UseParams(params int[] list) 
       {
          for ( int i = 0 ; i < list.Length ; i++ )
             Console.WriteLine(list[i]);
          Console.WriteLine();
       }   public static void UseParams2(params object[] list) 
       {
          for ( int i = 0 ; i < list.Length ; i++ )
             Console.WriteLine(list[i]);
          Console.WriteLine();
       }   public static void Main() 
       {
          UseParams(1, 2, 3);
          UseParams2(1, 'a', "test");       int[] myarray = new int[3] {10,11,12};
          UseParams(myarray);
       }
    }
    输出
    1
    2
    31
    a
    test10
    11
    12
    请参见
    C# 关键字 | 方法参数--------------------------------------------------------------------------------向 Microsoft 发送有关此主题的反馈&copy; Microsoft Corporation。保留所有权利。
      

  6.   

    对,重载就可以,也可以传一个动态的arraylist作为参数,那arraylist的值就可以任意传了,可多可少
      

  7.   

    用方法的重载!
    e.g
    public string getstring(string s)
    {
        
    }
    public string getstring(string s,int i)
    {
         
    }
    public string getstring(string s,string s1,string s2)
    {
         
    }
    然后你在调用这个函数的时候就可以输入1个参数或者2个参数或者3个参数,