0

菜鸟在这里。我正在尝试编写代码来显示和打开文件路径,经过大量搜索和痛苦后,我仍然无法克服An object reference is required for the non-static field, method, or property (CS0120)错误。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using ArrayList = System.Collections.ArrayList;

namespace Risk_Stats
{
    public class Risk_stats_CSV_generator
    {
        string outputPath = Path.GetFileName( Path.GetDirectoryName( @"U:\XXXX" ) );        
        public static void Main(string[] args)
        {
            System.Diagnostics.Process.Start(outputpath);
        }
    }
}

我正在努力理解有关此错误的可用解决方案。对象引用是什么意思?它将如何放置在代码中?

4

1 回答 1

1

outputPath也需要声明为静态的。

private static string outputPath = Path.GetFileName( Path.GetDirectoryName( @"U:\XXXX" ) );        

public static void Main(string[] args)
{
    System.Diagnostics.Process.Start(outputpath);
}

在您的原始版本中,您尝试访问与 的实例绑定的成员Risk_stats_CSV_generator,但是静态成员没有可引用的实例,因此不允许这样做。

您可以通过将您的类也更改为静态来缓解此类错误,例如:

namespace Risk_Stats
{

    public static class Risk_stats_CSV_generator
    {

        ...

    }

}

这将阻止您使用非静态成员。

于 2013-08-01T11:27:42.447 回答