2011-03-26 8 views
0

내가 비주얼 스튜디오 2010의 C#의 경매 시스템을 프로그래밍하고, 난 7 개 클래스 왜 오류 코드와 정말 확실하지를 받고 : 경매 시스템 입찰 구매자 판매자 항목을 사용자,C#을 콘솔,

내 사용자 클래스 내 사용자 이름과 암호를 프로그래밍하려고하는데 오류 메시지가 표시됩니다. 아래 코드는 내 코드입니다.

public abstract class user 
{ 
    protected string username; 
    protected string password; 

    public user(string username, string password) 
    { 
     this.username = username; 
     this.**password** = password; 
    } 
    public string getusername() 
    { 
     return username; 
    } 
    public string password() 
    { 
     return **password**; 
    } 
} 

오류가 나는 가능하다면 도와주세요 C 번호에서 매우 초보입니다 대담한 (단어 옆에 ** 번)

에 있습니다. 나는 자습서 등을하고 있는데, 나는이 정렬이 필요한 처지에 그들을 게시 할 필요가 없다.

+1

:

이 시도. –

+0

내 나쁜 :) 초보자 : D –

답변

3

문제는 password이라는 문자열 필드와 password이라는 문자열을 반환하는 메서드가 있다는 것입니다. 컴파일러는 당신이 의미하는 것을 모릅니다.

public string getpassword() 
{ 
    return password; 
} 

이 코딩의 여러 가지 방법이 있습니다 - 그러나 이것은 당신이 시작할 수 있어야합니다

getpassword에 방법을 이름을 변경하십시오.

참고 : C#은 대소 문자를 구분하므로 대개의 경우 대문자를 사용하여 메서드를 시작하고 복합 이름에 Pascal Case를 사용하는 것이 일반적입니다. 그래서 방법이 될 것입니다 :

public string GetUsername() 
{ 
    return username; 
} 

public string GetPassword() 
{ 
    return password; 
} 

당신은 필드에 이름을 password에 달라졌을 것입니다 방법 이름 Password으로 문제가 없었을 것입니다 원래 다음이 일을했다.

자세한 내용은 this page on .NET naming conventions을 참조하십시오.

+0

고마워, 정말 고마워, 내가 왜 하하 전에 이것을 생각하지 않았는지 모르겠다. –

+0

@ meNo - 걱정하지 마세요. 저는 30 년 동안 프로그래밍을 해왔으며 여전히 * 당분간 명백한 것을 놓치고 있습니다. – ChrisF

+0

30 년은 놀랍습니다. 나는 다른 사람들을 도울 수있을 때까지 기다릴 수 없다.이 콘솔을 처음 만들었을 때의 교과 과정을 마치는 순간, 정말 즐겁고 많은 것을 배우기 만하면 정말 어렵다. 시스템 클래스를 프로그래밍하는 것을 두려워합니다. –

1

같은 이름의 메소드와 필드가 있습니다. 속성을 사용하거나 메서드 이름을 바꿀 수 있습니다. 예제 코드는 "비밀"에 ...

public abstract class User 
{ 
    protected string _username; 
    protected string _password; 

    public user(string username, string password) 
    { 
     this._username = username; 
     this._password = password; 
    } 

    public string GetUsername() 
    { 
     return _username; 
    } 

    public string GetPassword() 
    { 
     return _password; 
    } 
} 

또는

public abstract class User 
{ 
    protected string _username; 
    protected string _password; 

    public user(string username, string password) 
    { 
     this._username = username; 
     this._password = password; 
    } 

    public string Username 
    { 
     get 
     { 
      return _username; 
     } 

     set 
     { 
      _username = value; 
     } 
    } 

    public string Password 
    { 
     get 
     { 
      return _password; 
     } 
     set 
     { 
      _password = value; 
     } 
    } 
} 
+0

= 값의 의미는 무엇입니까? 또는합니까? –

+0

속성의 집합 (ter)은 속성에 할당 된 값을 포함하는 'value'라는 특별한 키워드를 가지고 있습니다. 그래서 다음과 같은 코드를 작성할 때 : var me = new User ("Erno", "123"); 나. 패스워드 = "456"; setter가 호출되고 value는 "456"이 될 것이고 _password에 할당 될 것입니다. –

+0

아, 감사합니다. –

0

귀하의 오류를 오는 "암호"방법이 아닌 특성 때문에 발생합니다. 당신은뿐만 아니라 가지고 오류 메시지를 표시했습니다해야

public class User { 
    public User (string name, string password) { 
    this.Username = username; 
    this.Password = password; 
    } 
    public string Username { get; set; } 
    public string Password { get; set; } 
}