noob在这里。我正在尝试编写一个代码来显示和打开文件路径,经过多次搜索和痛苦后,我仍然无法通过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);
}
}
}
我正在努力理解这个错误的可用解决方案。对象引用是什么意思?它将如何放在代码中?
答案 0 :(得分: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
{
...
}
}
这将阻止您使用非静态成员。