【发布时间】:2017-03-11 16:54:49
【问题描述】:
我有一个由 2 个类组成的代码。在class Program 中有一个方法名称calculate,它应该获取3 个字符串并返回一个对象:
namespace ConsoleApplication1
{
public class DataGridObject
{
public string MainName { get; set; }
public double Level { get; set; }
public double Exp { get; set; }
public double AmountNeed { get; set; }
public double TotalLose { get; set; }
public double TotalGain { get; set; }
public double TotalCost { get; set; }
public Uri ImageSource { get; set; }
}
public static class Program
{
public object calculate(string db_name, string sheetname, string images_path)
{
string DataBase_File = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString(), String.Format("{0}",db_name));
string SheetName = string.Format("{0}$",sheetname);
string Images_File = string.Format(@"{0}",images_path);
***//some code in between which reads url, parsing json and do some math on the data in order to store it in `var d`//***
var L = new List<DataGridObject>();
string[] filePaths = Directory.GetFiles(Images_File);
for (int z = 0; z < list_Exp.Count; z++)
{
var d = new DataGridObject();
d.MainName = ...;
d.Level = ...;
d.Exp = ...;
d.AmountNeed = ...;
d.TotalLose = ...;
d.TotalGain = ....;
d.TotalCost = ....;
d.ImageSource = new Uri....;
L.Add(d);
}
return L;
}
//calling the method:
string db_name = "DataBase.xlsx";
string sheetname = "sheet1";
string images_path = "C:\\Users...";
object a = calculate(db_name, sheetname, images_path);
}
我得到的错误是在我调用方法的那一行:
“字段初始值设定项不能引用非静态字段、方法或属性Program.db_name”和其他 2 个(Program.sheetname、Program.images_path)相同
【问题讨论】:
-
为什么方法参数之间有分号? “对象 a = 计算(字符串 db_name;字符串 sheetname;字符串 images_path);”
-
您提供的错误与您向我们展示的代码不匹配,这一行肯定会产生与您向我们展示的错误不同的错误:
calculate(string db_name, string sheetname, string images_path);。跨度> -
@ben 我没有说它会解决问题。它不会像你之前展示的那样编译,只是没有意义。
-
您需要将您的问题修改为MVCE,这是重现您所描述问题的最少代码量。目前,您的代码到处都有省略号、未闭合的部分,并且在任何情况下都不会产生您所描述的错误。
-
您阅读链接的 MVCE 帮助了吗?不要尝试零碎地“修复”您显示的代码。花时间创建一个最小但完整的示例,然后在此处发布。