【问题标题】:How to write method which will accept variable count of parameters by ref如何编写将通过 ref 接受可变参数计数的方法
【发布时间】:2013-05-07 11:22:11
【问题描述】:

所以,我有以下代码

int[] GetIndexes(string columns)
{
  ...
}

var indexes = GetIndexes("Code|Name|Description");
var codeIndex = indexes[0];
var nameIndex = indexes[1];
var descIndex = indexes[2];

最好用下一种方式:

GetIndexes("Code|Name|Description", ref codeIndex, ref nameIndex, ref descIndex);

你有什么建议吗?

【问题讨论】:

标签: c#


【解决方案1】:

您可以使用自己的类来获取索引。看看如何:

class IndexReceiver
{
    public string Name { get; set; }
    public int Index { get; set; }

    public static implicit operator IndexReceiver(string name)
    {
        return new IndexReceiver() { Name = name };
    }
}

然后,您可以像这样定义您的方法:

void GetIndexes(params IndexReceiver[] receivers)
{
    // Here you read the each IndexReceiver's Name property and write the index.
}

像这样使用新方法:

IndexReceiver code = "Code", index = "Index", desc = "desc"
GetIndexes(code, index, desc);

【讨论】:

  • 应该是implicit,而不是explicit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多