2013-10-17 4 views
0

Hello int는 나중에 변수가 사용될 전역 int에서 작업합니다. 나는이 같은 글로벌 변수를 만들었어요 :전역 변수를 사용하는 비 정적 필드, 메소드 또는 속성에 객체 참조가 필요합니다.

나중에 다음과 같이 호출됩니다
class Foo 
    { 
     public static int stream = Bass.BASS_StreamCreateFile(path1.Text, 0, 0, BASSFlag.BASS_DEFAULT); 
    } 

:

Foo.stream 

그리고 그것은 또한 예를 들어 stream20,30 등 더 후 1 개 스트림을 포함 할 수 있습니다 .. .

여기서 문제는 저에게이 오류를 반환한다는 것입니다 :

내가텍스트를 호출 "개체 참조가 비 정적 필드, 메서드 또는 속성이 필요합니다"

어떻게 수정합니까? 이 같은

+1

'경로 1'은 무엇입니까? –

+1

path1.Text는 어디에 있습니까? – rkawano

+1

'path1.Text'는 어디에서 왔습니까? 선언 된 곳은 어디입니까? 예를 들어 문제를 해결하기 위해 path1을 '정적'으로 선언해야합니다. public static Foo path1'이지만이 디자인은 이미 추악한 냄새가 난다. –

답변

2

당신의 일을 더 잘 뭔가 :

public class Foo 
{ 
    public static int GetStream(string path) 
    { 
     return Bass.BASS_StreamCreateFile(path, 0, 0, BASSFlag.BASS_DEFAULT); 
    } 
} 

int foo = Foo.GetStream(path1.Text); // Or whatever you want to call the method. 

매개 변수로 경로를 전달.

편집 : 귀하의 코멘트에

을 바탕으로, 당신을 위해 다음과 같은 코드가 작동합니까?

public class Foo 
{ 
    public static int GetStream(string path) 
    { 
     return 1; 
    } 
} 

int foo = Foo.GetStream(path1.Text); 

1이 반환되어야합니다. 그래도 작동한다면 Bass.BASS_StreamCreateFile()에 문제가있는 것입니다. 그렇지 않은 경우 코드에 Foo 클래스를 사용하는 방법을 볼 수 있도록 모든 코드를 게시 할 수 있습니까?

+0

그래, "경로"가 텍스트에 있다면? 예를 들어 path1.Text를 경로로 사용합니다. 그것은 나에게 내가 처음 시작했던 곳을 떠나는 같은 오류를 돌려 줄 것이다. – Joscplan

+0

귀하의 의견을 반영하도록 코드를 수정했습니다. –

+0

여전히 정적 인 필드, 메소드 또는 속성에 대해 객체 참조가 필요하며 잘못된 문자가있는 것과 같은 오류가 발생합니다. ¿ 내가 뭘 잘못 했니? – Joscplan