实施例。 http://msdn.microsoft.com/en-us/library/bew39x2a%28v=vs.110%29.aspx 我想知道像BeginSend,BeginReceive等C#方法是否必须声明为静态,如果是这样,为什么呢?
我目前正在构建一个客户端/服务器架构,我想从BeginSend / CallBack方法中访问非静态方法/属性。
答案 0 :(得分:6)
首先关闭BeginSend/BeginReceive
不是静态(如您链接的代码示例所示,通过Socket
实例调用它们证明)。他们 in 静态方法的原因是样本是从Main
运行而没有任何额外的类定义。
Main
是static
方法,因此它直接调用的方法也标记为static
。然后传播到样本中的所有其他方法。
简而言之,否,无需从static
方法运行这些功能。
出于同样的原因,回调方法是static
。如果您在实例化方法中对BeginSend
进行了初始调用,则可以使用实例化的回调/数据而没有问题。