2012-07-21 7 views
-1

아주 간단한 오류처럼 보이지만 해결할 수 없습니다. User.cs에 User라는 클래스를 만들었습니다. 다른 .cs 파일에서 인스턴스를 만들었지 만 속성을 변경하거나 속성에 연결할 수 없습니다.C# 클래스 요소에 도달 할 수 없습니다.

User user = new User(); 

이렇게 새 인스턴스를 만들지 만 연결할 수 없습니다. 예를 들어 :

user.name 

사용자 클래스의 내용은 다음과 같다 :

public class User 
{ 
    public static string name; 
    public static int age; 
    public static int height; 
    public static int weight; 
} 

어떤 이유는 내가 그것을 어떻게 해결할 수 있습니까? 감사합니다.

+2

name'가'아니다'라고 우리에게 – Jon

+0

이 될 수 User 클래스에 대한 코드를 보여주십시오 공개? 왜 정확한 오류를 지정하지 않았습니까? – tenfour

+0

은 (는) 공개 된 문자열 이름입니까? User.cs 파일을 공유하십시오. –

답변

2

, 그것을 사용하는 클래스의 인스턴스를하지 않습니다, 단지

User.name 

Alternativly 정적 키워드를 제거 할.

단어 정적

public Class { 
    public static object myAttribute; 
} 

Class.myAttribute 

와 클래스 그래서 뭔가를 액세스하기 위해 클래스의 새 insance을 할 필요가 없습니다 의미하지만 당신은 정적 키워드를 사용하지 않는 경우

public Class { 
    public object myAttribute; 
} 

Class myClass = new Class(); 
myClass.myAttribute; 

값이 같은 클래스의 다른 변수에 의존하지 않을 때 정적 값을 사용하려고합니다. 변수가 같은 클래스의 변수 (또는 변수 조작)에 의존 할 때 비 정적 변수를 사용하십시오. 필드

1

name은 (는) 공개 회원입니까?

public string Name { get { return name; } } 

편집 ... 그것은 대중 설정하거나 액세스 할 수있는 공용 속성을 만듭니다 name는 정적 멤버, 당신은 myUser.name을 쓸 수 없습니다. User.name입니다. 나는 static을 제거해야한다고 생각한다.

빌드하는 동안 발생하는 오류 메시지는 무엇입니까? 그것은 충분히 분명해야합니다.

0

사용자 클래스에 public으로 선언해야합니다. 예를 들면 : 당신은 정적 객체를 생성 한

public string name { get; set; } 
2

제거 키워드 static 당신은 클래스의 인스턴스에서 정적 필드에 액세스 할 수 없습니다.

public class User 
{ 
    public string name; 
    public int age; 
    public int height; 
    public int weight; 
... 

또는 정적 클래스에 액세스 할 수 있습니다 : 당신은 정적 필드를 선언 할 수 없습니다

User.name 
+0

작동했습니다. 감사. 이제 정적에 의한 차이점이 있습니다. – rooter

관련 문제