最近从python迁移到C#。开发数学应用。 在SO上看了很多关于class vs struct的问题,所以我想从经验丰富的人那里得到关于性能的建议。
详情
我有一个方法,并且在执行期间计算了6个双变量,并且计算了大约6个相同长度的double []数组。我希望我的方法将所有这些“打包”返回到一个变量中。不打算改变它们,我只需要存储并访问它们。在执行应用程序期间,将多次调用方法,此类存储也将多次创建(最多40个)。
复制示例
public (???) Method (params)
{
double return_value1 = actions_with_params1;
double return_value2 = actions_with_params2;
double[] return_array1 = actions_with_paramsin_a_loop1;
double[] return_array2 = actions_with_paramsin_a_loop2;
}
......等等。我想返回一个包含double
和double[]
s的变量。我应该使用什么更好(???)
?类或结构,关于性能?
谢谢!
答案 0 :(得分:1)
以下是我如何做的示例:
class Program
{
static void Main(string[] args)
{
List<Container> myValueStorage = new List<Container>();
for (int i = 1; i < WhateverAmountOfOperations; i++)
{
myValueStorage.Add(YourMethod(yourParams));
}
}
public static Container YourMethod(yourParams)
{
//Perform your calculations and store your results in the following variables
double[] double_results; //An array of doubles
double[][] double_array_results; //An array of double arrays
//Create and return a class object containing the values
return new Container(double_results, double_array_results);
}
}
class Container
{
double[] _doubles { get; }
double[][] _double_arrays { get; }
public Container (double[] doubles, double[][] double_arrays)
{
_doubles = doubles;
_double_arrays = double_arrays;
}
}