如何在创建实例的方法之外访问实例?

本文关键字:实例 访问 方法 创建 | 更新日期: 2023-09-27 18:17:13

我正在制作一个将OutGauge数据传输到Arduino的控制台应用程序,但我遇到了下面描述的问题。

这是我的代码的顶部:

using System;
using InSimDotNet.Out;
using ArduinoDriver;
using ArduinoUploader.Hardware;
using ArduinoDriver.SerialProtocol;
class Program
{
    static void Main()
    {
        var driver = new ArduinoDriver.ArduinoDriver(ArduinoModel.NanoR3, true);

我需要访问outgauge_PacketReceived()中的driver(我在Main方法中创建的)。具体来说,我需要使用它的Send()方法。

static void outgauge_PacketReceived(object sender, OutGaugeEventArgs e)
{
    //I need driver.Send() here.
}

如何在创建实例的方法之外访问实例?

在类级别声明driver:

static ArduinoDriver _driver;
static void Main()
{
   _driver = new ArduinoDriver.ArduinoDriver(ArduinoModel.NanoR3, true);
   //...
}

您将其声明为类成员,然后仍然在Main

中实例化它

在Main外声明,如下所示:

using System;
using InSimDotNet.Out;
using ArduinoDriver;
using ArduinoUploader.Hardware;
using ArduinoDriver.SerialProtocol;
class Program
{
    ArduinoDriver driver;
    static void Main()
    {
    driver = new ArduinoDriver.ArduinoDriver(ArduinoModel.NanoR3, true);