2014-12-30 3 views
-1

이 간단한 두 줄 코드는 오류 A field initializer cannot reference the nonstatic field, method, or property ClassName.value'`를 제공합니다. 나는 단지 enter link description here에서 튜토리얼을 따른다. 나는이 코드를 unity3d에서 사용하고있다.필드 이니셜 라이저가 비 정적 필드, 메서드 또는 속성을 참조 할 수 없습니다. ClassName.value

// 입력 문자열.

string value = "Dot Net Perls"; 

// ToCharArray를 사용하여 문자열을 배열로 변환합니다.

class Foo 
{ 
    string value = "Dot Net Perls"; 
    char[] array = value.ToCharArray(); 
} 

이 허용되지 않습니다

char[] array = value.ToCharArray(); 
+0

더미 대신 실제 코드를 표시하십시오. –

+1

"value"및 "array"비 정적 필드가 클래스에 있습니까? 그렇다면이 방법으로는 할 수 없습니다. 대신 생성자에서 배열을 초기화 할 수 있습니다. – msporek

답변

1

나는이 같은 클래스 범위에서 value에 액세스하려고하는 것 같아요. 클래스 범위에서 클래스 멤버 만 선언 할 수 있으며 인스턴스 멤버가 포함 된 다른 문은 메서드 내부에 작성해야합니다.이 범위에서 초기화는 단순한 구문 설탕 일뿐입니다. 작업 할 때 :

string value = "Dot Net Perls"; 

컴파일러는 초기화 도구를 생성자로 이동합니다.

+1

* 다른 구문은 메소드 내부에 작성해야합니다. * 사실이 아닙니다. 두 필드를 '정적'으로 표시하면 아무 문제없이 작동합니다. –

관련 문제