C# 异步套接字方法(BeginSend/BeginReceive等)是否必须是静态的?如果是这样,为什么
本文关键字:静态 如果 为什么 是否 方法 套接字 异步 BeginSend BeginReceive | 更新日期: 2023-09-27 18:35:39
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
进行了初始调用,则可以毫无问题地使用实例化回调/数据。