看了一些c#的资料,c#是不支持参数可选的.但大家都用过的Console.write()去可以参数可选,你可以传递无数过参数,请问这是如何实现的?
在网上查了一下资料是用的params,但是Console.write()的参数提示去是string value 请问c#如何实现参数可选的?

解决方案 »

  1.   

    c#?
    可选参数? 啥意思?
    难道是 数组(object[]),list? 还是任意connection集合?
      

  2.   


    public Class ConSole
    {
     public void Print(string value)
    {}
     public void Print(int value)
    {}
     public void Print(byte value)
    {}}
    是这个意思?
      

  3.   

    看了一下msdn,重载了18个版本
      

  4.   

     
       protected void Button1_Click(object sender, EventArgs e)
        {
            TestFunction("A", "b", "C");
        }
        public void TestFunction(params string[] strings)
        {        for (int i = 0; i < strings.Length; i++)
            {
                Response.Write(strings[i] + "<br>");
            }
        }
      

  5.   

    要不重载,要不你就直接封装object,
      

  6.   

    Console.WriteLine(String.Format("1+1={0}",2))
    这样??
      

  7.   

    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();
        }    static void Main() 
        {
            UseParams(1, 2, 3);
            UseParams2(1, 'a', "test");         // An array of objects can also be passed, as long as
            // the array type matches the method being called.
            int[] myarray = new int[3] {10,11,12};
            UseParams(myarray);
        }
    }
     输出
      
    1
    2
    31
    a
    test10
    11
    12
     
    ps:这种问题msdn肯定会有答案的...