首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公共静态空<callbackMethodName>(IAsyncResult)

公共静态空<callbackMethodName>(IAsyncResult)
EN

Stack Overflow用户
提问于 2010-01-12 23:50:26
回答 3查看 648关注 0票数 0

欢迎光临!由于缺乏知识,我现在卡住了。我有以下几点:

代码语言:javascript
复制
    public void ClientEndConnect(IAsyncResult iar)
    {
        try
        {
            CommSocket = (Socket)iar.AsyncState;
            CommSocket.EndConnect(iar);

            OnNetworkEvents eventArgs = new OnNetworkEvents(true, "Connected: " + CommSocket.RemoteEndPoint.ToString(), string.Empty);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (ArgumentNullException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents(false, "Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
    }

这编译得很好,但由于这是一个回调,所以它实际上应该是:(static)

代码语言:javascript
复制
    public static void ClientEndConnect(IAsyncResult iar)
    {
        try
        {
            CommSocket = (Socket)iar.AsyncState;
            CommSocket.EndConnect(iar);

            OnNetworkEvents eventArgs = new OnNetworkEvents(true, "Connected: " + CommSocket.RemoteEndPoint.ToString(), string.Empty);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (ArgumentNullException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents(false, "Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
    )

但是当我这样做的时候,我得到了一堆错误,比如:

错误%1非静态字段、方法或属性'NietzscheBattleships.NetworkHelper.CommSocket‘需要对象引用

由于我缺乏C#方面的知识,我无法理解这些错误。请帮我理解一下。

我正在阅读什么是静态的,但您的意见也将有助于澄清我的困惑。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-12 23:56:22

为什么回调应该是静态的?

您会得到指定的错误,因为您正在访问CommSocket,它是类的一个成员。

只要让你的回调不是静态的,一切都会好起来的。

您可以获得有关什么是static关键字here的更多信息。

票数 3
EN

Stack Overflow用户

发布于 2010-01-12 23:56:33

您在回调中引用了“this”,这仅对实例成员有效。

你有什么理由认为你的回调必须是静态的吗?

票数 2
EN

Stack Overflow用户

发布于 2010-01-12 23:54:54

如果您试图从静态方法访问/操作CommSocket,那么它也必须是静态的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2050200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档