【发布时间】:2009-07-20 20:37:01
【问题描述】:
支持传递给 C# 函数的可选数据的最佳方式是什么?
我在 .Net 中有网络服务功能,它定义了 5 个参数:
[WebMethod]
public string UploadFile( string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName
, MetaData[] metaDataArray)
这个函数的代码不会太长(但也不是微不足道的),如果有任何MetaData[]要处理,我在函数中只有一个地方执行这个测试:
if (metaDataArray.Length > 0)
{
Update update = BuildMetaData(metaDataArray);
treq2.Items = new Operation[] { sru, cin, update, fetch};
}
else
{
treq2.Items = new Operation[] { sru, cin, fetch};
}
我需要一个快速而肮脏的上述版本,它只需要 4 个参数(即没有“元数据”数组作为最终参数),所以我克隆了整个函数并删除了引用元数据的 IF-ELSE 块。丑我知道。
[WebMethod]
public string UploadFileBasic( string wsURL
, byte[] incomingArray
, string FileName
, string RecordTypeName)
现在我想把事情做得更好,我正在寻找支持这一点的最佳方式的建议。我不想通过创建一个空数组作为第 5 个参数来增加客户端程序的负担……我想让我的 Web 服务函数足够智能以处理这些可选数据。谢谢。
【问题讨论】:
标签: c# visual-studio arrays arguments overloading