我目前第一次需要将我的应用重写到库中。到目前为止我已经成功了,但我需要以某种方式进行自动重复过程,这可以通过简单的 camShield.start() 启动。
但我无法从任何地方引用已启用。这里的想法是我将使用计时器启动线程,这将检查启用的变量。但为此,我需要另一个函数,如 stop(),它将启用的变量设置为 false。
有没有更好的方法来实现这样的功能?
---编辑----
我需要编写函数 CamShield.start() 和 CamShield.stop(),它们将能够访问 CamShield.enabled 变量。
这是我试图解决的部分代码(它是类库)
using SharpAdbClient;
using System;
using System.Diagnostics;
using System.Threading;
namespace BaReader
{
public class Private
{
public class CamShield
{
internal bool enabled = true;
public static void start()
{
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
Timer camShieldTimer = new Timer(tap, null, 0, 20000);
}).Start();
}
}
internal static void tap(Object o)
{
AdbClient.Instance.ExecuteRemoteCommand("input tap 600 900", Device.lookup(), null);
Debug.WriteLine("Tapped");
}
}
}
提前感谢您的任何想法。
最佳答案
您已将方法声明为静态的,并且您的变量已启用为非静态的,因此您无法访问它,
public class CamShield
{
internal bool enabled = false;
public void start()
{
if(!enabled)
{
enabled = true;
//your code to start
}
}
public void stop()
{
if(enabled)
{
//your code to stop
enabled = false;
}
}
}
我相信您可以实例化 CamShield 类并从外部访问启动和停止方法。
关于c# - 从同一个类中引用类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51258663/