有这么一堂课
public class Calculator
{
private Calculator()
{
}
public static Calculator WorkingWithConsole(string UserInput)
{
var Calculator = new Calculator();
string[] split = Regex.Split(UserInput, @"(\b[-+*\/]|[+-]?\d+[^-+*\/]\d+|[+-]?\d+|[-
+*\/()])").Where(x => !string.IsNullOrWhiteSpace(x)).ToArray();
Checking(split);
CalculatingFromConsole(split);
return Calculator;
}
public static Calculator WorkingWithFile(string FilePath)
{
var Calculator = new Calculator();
if (!File.Exists(FilePath))
{
throw new FileNotFoundException("Файл не найден");
}
var oldPath = FilePath;
var tmp = new[] { Path.GetDirectoryName(oldPath), "Result.txt" };
_resultPath = Path.Combine(tmp);
using (FileStream file = new FileStream(_resultPath, FileMode.Create)) {
file.SetLength(0);
}
CalculatingFromFile(FilePath);
return Calculator;
}
private void Checking(string[] line)
{
.....
}
private void CalculatingFromFile(string[] line)
{
.....
}
}
其中有静态构造函数。
问题是方法
CalculatingFromConsole(split);
Checking(split);
不是静态的,因此 非静态字段错误需要对象引用
是否可以在不将它们转换为静态方法的情况下修复此错误?
看,当您尝试调用“非静态”方法而不实例化类时会发生此错误。试试这样:
我建议您更详细地熟悉静态。这一切都在这里得到了很好的解释。