c# - 返回并调用多个数组
问题描述
我有一个方法可以返回五个不同维度的数组:
public static (string[],string[],string[,],string[,],string[,]) deserializeobject(string filename)
{
return (Auftraggeber, Aufstellungsort, Anlagen, Vorgang_rückgemeldet, Vorgang_zukünftig);
}
如何正确调用此方法以进一步使用数组?
解决方案
我强烈建议为此创建一个类,特别是因为该方法是公共的,因此可以在多个上下文中使用。这使您的 API 用户更容易确定每个返回成员的含义。
无论如何,您的个人成员似乎都具有后裔意义,那么为什么要扔掉它并返回一组无名参数呢?
class MyObject
{
public string[] Auftraggeber { get; set; }
public string[] Aufstellungsort { get; set; }
public string[] Anlagen { get; set; }
public string[] Vorgang_rückgemeldet { get; set; }
public string[] Vorgang_zukünftig { get; set; }
}
和:
public static MyObject Deserialize(string fileName)
{
return new MyObject { AuftragGeber = ... };
}
现在,您的方法的用户可以轻松确定参数的含义:
var o = deserialize(myFile);
DoSomething(o.Aufstellungsort);
这比这更容易阅读:
var o DoSomething(myFile);
DoSomething(o.Item2);
不是吗?除此之外,它还限制了拼写错误。在第二种情况下,用户Item2
在实际输入时可以轻松输入Item1
,这可能会导致调试时头疼。每个成员都有一个血统名称,这些拼写错误的可能性要小得多。
推荐阅读
- javascript - Angular中有没有办法将字符串数组转换为修改后的字符串数组?
- c# - ASP.NET WebAPI RefreshTokenProvider 过期时间错误
- java - 递归制作钻石
- ios - 我可以在应用程序(应用程序关闭时)、iOS、Swift 的后台使用 Firebase 操作吗
- r - R,ggplot2:将填充值更改为谨慎的颜色而不是渐变
- angular6 - 如何使用 Vert.x 垂直事件总线端点从 Angular6 UI 客户端进行 websocket 事件总线连接
- c - 如何检查文件是否在给定目录中
- python - 如何在 PyQt 中向事件循环发出自定义事件
- python - 试图制作一个菜单驱动的界面来维护分数列表
- c - 我的 scanf 循环之一是在执行之前要求两个输入。空格问题?