C# 异步套接字方法(BeginSend/BeginReceive等)是否必须是静态的?如果是这样,为什么



Ex. http://msdn.microsoft.com/en-us/library/bew39x2a%28v=vs.110%29.aspx我想知道 C# 方法(如 BeginSend、BeginReceive 等)是否必须声明为静态,如果是,为什么?

我目前正在构建一个客户端/服务器架构,我想从 BeginSend/CallBack 方法内部访问非静态方法/属性。

首先BeginSend/BeginReceive不是静态的(如您链接到的代码示例中所示,通过 Socket 的实例调用它们证明了这一点)。它们位于静态方法中的原因是,该示例旨在从Main运行,而无需任何额外的类定义。

Main 是一种static方法,因此它直接调用的方法也标记为 static 。然后,这将传播到示例中的所有其他方法。

简而言之,不需要,不需要static方法运行这些函数。

出于同样的原因,回调方法static 。如果从实例化方法中对BeginSend进行了初始调用,则可以毫无问题地使用实例化回调/数据。

相关内容

最新更新