【发布时间】:2014-03-02 23:43:17
【问题描述】:
我需要同时使用“public int”(不是 100% 确定)和“private static void”(100% 确定!!)
但是,我无法从私有静态 void 中访问类的成员数据。
谁能告诉我如何解决这个问题或解决方法?
非常感谢您的帮助!
namespace MyDLL
{
public class clsDLL
{
ThirdPartyAPI _api = new ThirdPartyAPI();
double _X = 0;
//My C# project is a COM DLL that will be called by other applications, so I have chosen "public int" here
public int open(string uKey)
{
int iRet = _api.Open(uKey);
return iRet;
}
//This is a callback that will be called by "_api"
private static void CallBack_MoveDetected(ref MoveData data, IntPtr userData)
{
_X=data.positionX; //this does not work. I can not access "_X" from here.
}
}
}
【问题讨论】:
-
这就是拥有静态方法的全部意义所在,它与任何特定实例无关。
-
为什么方法需要是静态的?什么是
_X,它代表什么?实例成员需要对象的实例,静态成员没有实例的上下文。您将需要根据对象(实例)和概念(静态)来定义您的业务领域。 -
您可以将实例变量传递给静态方法并为实例添加 get 属性
-
静态和非静态有什么区别?一直没看懂。
-
@tmighty Google 是你的朋友。
标签: c# class static-methods member