【问题标题】:Passing variables from private void to other private void C#将变量从私有 void 传递到其他私有 void C#
【发布时间】:2020-12-03 00:30:38
【问题描述】:

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

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

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

这里是 OnReferenceRegion void

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

    }

【问题讨论】:

  • 你可能想创建一个field
  • 您的问题是什么?您可以创建字段或将值作为参数传递给函数吗?你能用minimal reproducible example更新你的问题吗?
  • 我会改的!

标签: c# .net wpf variables void


【解决方案1】:

在 void 函数之间“传递变量”有 4 种方式:

  1. 访问两个函数共享范围内的字段。
  2. 使用委托或本地函数捕获变量。
  3. ByRef 参数(参考、输出、输入)。
  4. 不安全上下文中的指针。

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

【讨论】:

  • 很好,感谢您的解释!我很高兴知道未来:)
【解决方案2】:

您可以添加一个私有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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2016-11-21
    • 2021-12-14
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多