【问题标题】:Unity error CS0103: The name `' does not exist in the current contextUnity错误CS0103:当前上下文中不存在名称`'
【发布时间】:2016-12-25 23:06:20
【问题描述】:

我有一个像这样的通用类:

public class Connection<T> where T: Stream 
{
    protected T _stream;
    protected TcpClient _client;

    public void Connect(){/*Do somthing*/}
    public void Disconnect(){/*Do somthing*/}

    public void Reconnect()
    {
        Disconnect();
        Connect();
    }
}

我使用 VisualStudio 作为编辑器,它没有错误,但在统一编辑器控制台中显示:

错误 CS0103:当前上下文中不存在名称“断开连接”

错误 CS0103:当前上下文中不存在名称“Connect”

错误所在的行在Reconnect() 函数中。

如果我从这个类中删除泛型,它没有任何错误。 这是一个错误还是我错过了什么?

【问题讨论】:

  • 确保您正确设置了 Visual Studio Unity 工具。确保函数定义中没有任何隐藏字符。或者只是切换到 MonoDevelop,也许它会为你解决这个问题。
  • MonoDevelop 也没有错误
  • 我将您的代码复制粘贴到我的项目中,它工作正常。您使用的是统一测试版吗?
  • 我使用的是 Unity 5.5.0p2。我已将脚本放在单独的文件中并导入 System.IO;它不在插件文件夹中。
  • 你如何使用你的Connection类? (意思是,如何调用 Connecion 类中的函数?)

标签: c# generics unity3d mono


【解决方案1】:

我是这样解决的:

public abstract class BaseConnection<T>
{
    protected T _stream;
    protected TcpClient _client;

    public abstract void Connect();
    public abstract void Disconnect();
}

public class Connection<T> : BaseConnection<T> 
    where T: Stream 
{
    public override void Connect(){/*Do somthing*/}
    public override void Disconnect(){/*Do somthing*/}

    public void Reconnect()
    {
        Disconnect();
        Connect();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-04
    • 2019-01-05
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多