c# |接收CS0236错误:字段初始化器无法引用非静态字段、方法或属性'

本文关键字:字段 方法 静态 属性 引用 CS0236 接收 错误 初始化 | 更新日期: 2023-09-27 18:13:05

我正在尝试使用EventLogReaderEventRecord类从本地计算机读取事件日志。使用c# .

我一直得到错误

CS0236错误:字段初始化器不能引用非静态字段、方法或属性getInfo。BSN_Navigator '

不知道我做错了什么。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics.Eventing.Reader;
/// </var bank>
/// </var bank>
namespace EventLogInfoReader
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine();
            String inputString = Console.ReadLine();
        }
    }
}
public class getInfo
{
    public static PathType FilePath { get; private set; }
    EventLogReader BSN_Navigator = new EventLogReader("c:''Users''banvilb''Documents''Event Log''FalconBackup_Sep192016T124905''BSN_Navigator.evt", FilePath);
    EventRecord bsnRecord = BSN_Navigator.ReadEvent();
    public void getLogName()
    {
        string x = bsnRecord.LogName;
        Console.WriteLine(x);
    }
    public void getId()
    {
        int x = bsnRecord.Id;
        Console.WriteLine(x);
    }
}

c# |接收CS0236错误:字段初始化器无法引用非静态字段、方法或属性'

EventRecord bsnRecord = BSN_Navigator.ReadEvent();需要进入构造函数

字段在声明中初始化的方式是有限的。在您的情况下,您正在尝试调用一个方法,但您不能调用方法之外的方法。这意味着你需要在构造函数中初始化它。

public class getInfo
{    
    EventLogReader BSN_Navigator = new EventLogReader("BSN_Navigator.evt", FilePath);
    EventRecord bsnRecord;
    public getInfo()
    {
        bsnRecord = BSN_Navigator.ReadEvent();
    }
}