首页 > 解决方案 > 返回并调用多个数组

问题描述

我有一个方法可以返回五个不同维度的数组:

public static (string[],string[],string[,],string[,],string[,]) deserializeobject(string filename)
{
    return (Auftraggeber, Aufstellungsort, Anlagen, Vorgang_rückgemeldet, Vorgang_zukünftig);
}

如何正确调用此方法以进一步使用数组?

标签: c#

解决方案


我强烈建议为此创建一个类,特别是因为该方法是公共的,因此可以在多个上下文中使用。这使您的 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,这可能会导致调试时头疼。每个成员都有一个血统名称,这些拼写错误的可能性要小得多。


推荐阅读