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只为每种方法建议归属返回数据类型.

你采取了一种根本错误的做法.
使每个方法的返回类型成为包含适当数据的类型.某些方法可能具有相同的返回类型; 对于其他数据类型,可能只有一个返回该类型的方法.
在某些情况下,泛型可能有所帮助 - 例如,如果你有不同的方法返回"最小值和最大值",有时long,有时int,有时float或其他什么,那么你可以有一个MinMax<T>类型.
这应该给你提示:
并返回不同类型的数据
鉴于这些方法自然地"返回不同类型的数据",为什么你会给它们所有相同的返回类型?
但是将所有内容都放在一种数据类型中并不是前进的方法.(这也是非常低效的,但这是二阶关注.)
下一步:删除这些公共字段,然后使用属性.您应该考虑某些类型是不可变的是否有意义,以及您当前公开数组的位置,而是公开只读集合.
| 归档时间: |
|
| 查看次数: |
2614 次 |
| 最近记录: |