将变量从private void传递到其他private void C#

问题描述

我正在使用热像仪和提供的SDK。但是问题在于我是.NET的真正初学者,因为通常我是用PHP开发的。

所以我想做的是将变量从一个私有的void传递到另一个私有的void。 例如,我试图将变量ToPass从无效的“ OnDetect” 传递到无效的 OnReferenceRegion

private void OnDetect(CallbackEventArgument callbackArgument)
    {
       string ToPass = "This string needs to be passed";
    }

这是OnReferenceRegion无效

    private void OnReferenceRegion(object sender,System.Windows.Input.MouseButtonEventArgs e)
    {
        String completeString = "";
        
        completeString = ToPass;

    }

解决方法

有四种方法可以在void函数之间“传递变量”:

  1. 访问两个函数共享范围内的字段。
  2. 使用委托或局部函数捕获变量。
  3. ByRef参数(ref,out,in)。
  4. 在不安全上下文中的指针。

在您的情况下,您可能需要第一个,即在包含类或这两个函数可以访问的任何其他范围内声明一个字段/属性。

,

您可以添加一个私有的field,它具有类范围的范围,因此可以通过两种方法进行访问:

class YourClass
{
    private string toPass; // Has class-wide scope

    private void OnDetect(CallbackEventArgument callbackArgument)
    {
       toPass = "This string needs to be passed";
    }

    private void OnReferenceRegion(object sender,System.Windows.Input.MouseButtonEventArgs e)
    {
        string completeString = "";
        
        completeString = toPass;
    }
}