如何在c#console应用程序中从Static void main调用其他类的方法?

时间:2018-03-30 03:06:45

标签: c# .net console-application

我想从GetDataTabletFromCSVFile类调用PRogram方法,但是当我尝试创建ReadCSV类的实例时,我收到此错误:{{1} }

以下是我的代码:

Type or name space could not be Found

3 个答案:

答案 0 :(得分:2)

C#中的static关键字完全改变了您声明它的类型/成员的行为。

以下是Microsoft .NET Documentation.

  

使用static修饰符声明一个静态成员,该成员属于该类型本身而不是特定对象。

这解释了static方法在调用之前不需要声明实例的方法。考虑它的一种简单方法是static使用type声明作为namespace而不是object成员。

以下代码可用于实现您想要的结果:

class Program
{
    static void Main(string[] args)
    {
        //Using command line arguments here would be a good idea.
        string path = "Some/Random/Directory/File.csv";

        var dataTable = ReadCSV.GetDataTabletFromCSVFile(path);

        //Now do something with dataTable...
    }
}

//It would be a good idea to declare the class as static also.
public static class ReadCSV
{
    //reading data from CSV files
    public static DataTable GetDataTabletFromCSVFile(string csv_file_path)
    {
        //You will also need to return something here.
    }
}

答案 1 :(得分:1)

您无需为静态方法创建实例。您可以使用类名本身直接访问静态成员。

class Program
{
    static void Main(string[] args)
    {
        DataTable Tbl = ReadCSV.GetDataTabletFromCSVFile(path);
    }
}

public class ReadCSV
{
    //reading data from CSV files
    public static DataTable GetDataTabletFromCSVFile(string csv_file_path)
    {

    }
}

答案 2 :(得分:0)

你必须声明静态类ReadCSV。要使用静态方法,其类必须是静态的

public static class ReadCSV
{
    //reading data from CSV files
    public static DataTable GetDataTabletFromCSVFile(string csv_file_path)
    {
        //You will also need to return something here.
    }
}

并在主

class Program
{
    static void Main(string[] args)
    {
        DataTable Tbl = ReadCSV.GetDataTabletFromCSVFile(path);
    }
}