private bool GetValueFromTable(out string sVal1, out string sVal2, out string sVal3)
{
sColumnValue1 = sColumnValue2 = sColumnValue3 = "";

}
这样可以用但是函数很死,只能返回3个字串。
如果字串的个数不一定,可以用下面这种形式吗?
private bool GetValueFromTable(int n, out string[] sVals)
{

}
但是要求对sVals初始化,不知道怎么在该函数体内作初始化?

解决方案 »

  1.   

    可以。
    sVals = new  string[n];
      

  2.   

    可以。如果实现不知道字符串的个数可以这样:ArrayList list = new ArrayList();
    list.Add("abc");
    list.Add("def");
    // 添加更多 list.Add()...
    list.Add("123");sVals = (string[]) list.ToArray(typeof(string));
    return sVals;
      

  3.   

    纠正一下:// return sVals; 这一行应该去掉,画蛇添足了,呵呵。因为已经习惯了 ToArray 然后 return...
      

  4.   

    不可以。不定参数必须用params关键字。
    你的上述代码可以如下:
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    string [] a;
    f(out a);
    Console.WriteLine(a[0]+"--"+a[1]);
    }
    public static void f(out string[] strArr)
    {
    strArr =  new String[2];//在里面初始化,也就是说你必须在编码时知道接受几个参数
    strArr[0] = "0" ;
    strArr[1] = "1";
    }
    }
      

  5.   

    private bool GetValueFromTable(int n, out string[] sVals)
    {
        sVals = new string[n];
    }其实,你这样做不也可以吗?
    string[] sVals = new string[3];
    private bool GetValueFromTable(string[] sVals)
    {
        int intCount = sVals.Length;
        ......
    }
      

  6.   

    我一般直接用string[]作为返回类型的
    比如我定义:
    public string[] a(string....)
    {
      string[] b = new string[..];
      .......
      return b;
    }