返回不同的数据类型C#

use*_*659 0 .net c# object return-type

我已经创建了一个具有许多不同方法的类库(DLL).并返回不同类型的数据(string string [] double double []).因此,我为包含不同数据类型的所有方法创建了一个名为CustomDataType的类,因此库中的每个方法都可以返回自定义类的对象,这样就可以返回我已经完成的多种数据类型:

public  class CustomDataType
{
    public double Value;
    public string Timestamp;
    public string Description;
    public string Unit;

   // special for GetparamterInfo
    public string OpcItemUrl;
    public string Source;
    public double Gain;
    public double Offset;
    public string ParameterName;
    public int ParameterID;

    public double[] arrayOfValue;
    public string[] arrayOfTimestamp;

    //
    public string[] arrayOfParameterName;
    public string[] arrayOfUnit;
    public string[] arrayOfDescription;
    public int[]    arrayOfParameterID;
    public string[] arrayOfItemUrl;
    public string[] arrayOfSource;
    public string[] arrayOfModBusRegister;
    public string[] arrayOfGain;
    public string[] arrayOfOffset;
Run Code Online (Sandbox Code Playgroud)

}

该库包含以下方法:

public CustomDataType GetDeviceParameters(string deviceName)
    {
        ......................
        code



      getDeviceParametersObj.arrayOfParameterName;  

      return getDeviceParametersObj;

    }

    public CustomDataType GetMaxMin(string parameterName, string period, string maxMin)
    {
        .....................................code



                        getMaxMingObj.Value             =   (double)reader["MaxMinValue"];
                        getMaxMingObj.Timestamp         =   reader["MeasurementDateTime"].ToString();
                        getMaxMingObj.Unit              =   reader["Unit"].ToString();
                        getMaxMingObj.Description       =   reader["Description"].ToString(); 

        return getMaxMingObj;
    }

    public CustomDataType GetSelectedMaxMinData(string[] parameterName, string period, string mode)
    {................................code

        selectedMaxMinObj.arrayOfValue          =   MaxMinvalueList.ToArray();
        selectedMaxMinObj.arrayOfTimestamp      =   MaxMintimeStampList.ToArray();
        selectedMaxMinObj.arrayOfDescription    =   MaxMindescriptionList.ToArray();
        selectedMaxMinObj.arrayOfUnit           =   MaxMinunitList.ToArray();
        return selectedMaxMinObj;

    }
Run Code Online (Sandbox Code Playgroud)

如图所示,不同的方法返回不同的数据类型,它适用于我,但当我导入DLL并想要使用方法Visual Studio shwos CustomDataType类中的所有数据类型作为所有方法的建议,即使返回不同数据.这在下图中是如此.正如我们从图片中可以看到所有不同返回数据的建议,用户可能会感到困惑并为某些方法选择错误的返回数据.所以我的问题是如何改进这一点.所以Visual Studio只为每种方法建议归属返回数据类型.

在此输入图像描述

Jon*_*eet 5

你采取了一种根本错误的做法.

使每个方法的返回类型成为包含适当数据的类型.某些方法可能具有相同的返回类型; 对于其他数据类型,可能只有一个返回该类型的方法.

在某些情况下,泛型可能有所帮助 - 例如,如果你有不同的方法返回"最小值和最大值",有时long,有时int,有时float或其他什么,那么你可以有一个MinMax<T>类型.

这应该给你提示:

并返回不同类型的数据

鉴于这些方法自然地"返回不同类型的数据",为什么你会给它们所有相同的返回类型?

但是将所有内容都放在一种数据类型中并不是前进的方法.(这也是非常低效的,但这是二阶关注.)

下一步:删除这些公共字段,然后使用属性.您应该考虑某些类型是不可变的是否有意义,以及您当前公开数组的位置,而是公开只读集合.