CS0103 - 当前上下文中不存在名称 'GetListFromCVS'

CS0103 - The name 'GetListFromCVS' does not exist in the current context

一般来说,C# 和面向对象编程还很陌生。我目前在尝试调用位于另一个“.cs”文件但位于同一命名空间中的 GetListFromCSV 方法时收到此错误。我不确定为什么我无法调用此方法?

我最初在 main 中的 GetListFromCSV 方法中有代码,但想将它放在它自己的 class 文件中以实践 SOLID 原则。也许在这种情况下没有意义?

如有任何帮助,我们将不胜感激。

谢谢!

主要:

using MathNet.Numerics;
using System.Collections.Generic;

namespace SimPump_Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Get CSV file location
            string dirCSVLocation = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            string fileCSVLocation = dirCSVLocation + @"\PumpCurveCSVFiles\pumpcurve.csv";

            // Read CSV contents into variable "records"
            //CSVToList CSVIsntance = new CSVToList();
            List<PumpCurveCSVInput> records = GetListFromCVS(fileCSVLocation);

            //float pumpFlowOutput;
            double[] pumpFlow = new double[records.Count];
            double[] pumpHead = new double[records.Count];

            int i = 0;
            foreach (var record in records)
            {
                //if (record.pumpHead == 50)
                //{
                //    pumpFlowOutput = record.pumpFlow;
                //}

                pumpFlow[i] = record.pumpFlow;
                pumpHead[i] = record.pumpHead;

                i++;
            }

            // Determine pump curve
            Polynomial.Fit(pumpFlow, pumpHead, 3);


        }
    }
}

GetListFromCSV 方法:

using CsvHelper;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;

namespace SimPump_Demo
{
    public class CSVToList
    {
        public static List<PumpCurveCSVInput> GetListFromCVS(string fileCSV)
        {
            List<PumpCurveCSVInput> records;
            using (var reader = new StreamReader(fileCSV))
            using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
            {
                records = csv.GetRecords<PumpCurveCSVInput>().ToList();
            }

            return records;
        }
    }
}

尽管GetListFromCVS是一个静态方法,它仍然属于CSVToListclass。因此你必须这样称呼它:

List<PumpCurveCSVInput> records = CSVToList.GetListFromCVS(fileCSVLocation);

只需使用 class 的名称,无需创建实例。

如果你的方法是非静态的

public class CSVToList
{
    public List<PumpCurveCSVInput> GetListFromCVS(string fileCSV)
    {
        // Your code
    }
}

在那种情况下,您应该先创建 CSVToList class 的实例,然后才能使用此方法

var csvHelper = new CSVToList();
List<PumpCurveCSVInput> records = csvHelper.GetListFromCVS(fileCSVLocation);