2016-12-25 1 views
1

현재 컨텍스트에 존재하지 않는 : 나는 편집기로으로 VisualStudio를 사용유니티 오류 CS0103 : 이름은 ''나는이 같은 제네릭 클래스가

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(); 
    } 
} 

를, 그것은 오류가 없습니다 있지만 단결 편집기 콘솔에 말한다 :

오류 CS0103이 : 이름 '분리'는 현재 컨텍스트에 존재하지 않는

오류 CS0103이 : 이름 '연결'은 현재 컨텍스트

오류의 라인이 Reconnect() 기능에 존재하지 않습니다.

이 클래스에서 제네릭을 제거하면 오류가 발생하지 않습니다. 이 버그입니까, 아니면 놓친 것입니까?

+0

이 제대로 비주얼 스튜디오 유니티 도구 설정을 가지고 있는지 확인하십시오. 함수 정의에 숨겨진 문자가 없는지 확인하십시오. 또는 잠시 MonoDevelop로 전환하십시오. 아마도 문제가 해결 될 것입니다. –

+0

MonoDevelop에도 오류가 없습니다 – M6stafa

+0

내 프로젝트에서 코드를 복사하여 붙여 넣었습니다. 정상적으로 작동합니다. 화합 베타를 사용하고 있습니까? –

답변

0

나는 이런 식으로 문제를 해결 :

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(); 
    } 
}