拍卖系统的C#控制台,得到一个错误代码,真的不知道为什么

拍卖系统的C#控制台,得到一个错误代码,真的不知道为什么,c#,C#,我正在visual studio 2010上用C#编程一个拍卖系统,我有7门课: 拍卖 系统 投标 买主 卖方 项目 用户 在我的用户类中,我试图编程我的用户名和密码,但得到一条错误消息,下面是我的代码 public abstract class user { protected string username; protected string password; public user(string username, string password) {

我正在visual studio 2010上用C#编程一个拍卖系统,我有7门课: 拍卖 系统 投标 买主 卖方 项目 用户

在我的用户类中,我试图编程我的用户名和密码,但得到一条错误消息,下面是我的代码

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#的新手,如果可能的话,请帮助我。我正在做教程等,所以没有必要张贴他们只是在困境中,我需要这个排序

问题在于,您有一个名为
password
的字符串字段和一个返回名为
password
的字符串的方法。编译器不知道你的意思

尝试将方法重命名为
getpassword

public string getpassword()
{
    return password;
}
有不同的编码方式,但这应该让你开始

注意由于C#区分大小写,通常的惯例是以大写字母开始方法,并使用Pascal大小写作为复合名称。因此,您的方法将变成:

public string GetUsername()
{
    return username;
}

public string GetPassword()
{
    return password;
}
如果您最初这样做,那么您就不会有问题,因为方法名的
密码
与字段名的
密码
不同


有关详细信息,请参阅。

问题在于您有一个名为
密码的字符串字段和一个返回名为
密码的字符串的方法。编译器不知道你的意思

尝试将方法重命名为
getpassword

public string getpassword()
{
    return password;
}
有不同的编码方式,但这应该让你开始

注意由于C#区分大小写,通常的惯例是以大写字母开始方法,并使用Pascal大小写作为复合名称。因此,您的方法将变成:

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 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 GetUsername()
    {
        return _username;
    }

    public string GetPassword()
    {
        return _password;
    }
}

出现“password”错误是因为“password”是一个方法而不是属性

试试这个:

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; }
}
出现“password”错误是因为“password”是一个方法而不是属性

试试这个:

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

谢谢,伙计,真的很感激,不知道为什么我以前没有想到这个哈哈。@meNo-别担心-我已经编程30年了,但仍然时不时地错过显而易见的东西。30年真是太棒了。迫不及待地想帮助别人,我现在正在做一个课程,让这个控制台成为我的第一次体验,真的很享受,学到了很多东西,只是觉得很难。我害怕编程系统类请从一开始就学会使用正确的上/下外壳。请参阅我的代码。@Erno-我知道正确的大小写。因为这是一个家庭作业类型的问题,我只是把OP指向了正确的方向。我会加上一张便条。谢谢,伙计,真的很感激,不知道为什么我以前没有想到这一点哈哈。@meNo-别担心-我已经编程30年了,但仍然时常错过显而易见的东西。30年真是太棒了。迫不及待地想帮助别人,我现在正在做一个课程,让这个控制台成为我的第一次体验,真的很享受,学到了很多东西,只是觉得很难。我害怕编程系统类请从一开始就学会使用正确的上/下外壳。请参阅我的代码。@Erno-我知道正确的大小写。因为这是一个家庭作业类型的问题,我只是把OP指向了正确的方向。我要加一个注释,=值是什么意思?或do?属性集(ter)有一个名为
value
的特殊关键字,它包含分配给属性的值。所以当您编写这样的代码时:var me=newuser(“Erno”,“123”);me.Password=“456”;将调用setter,值将为“456”,并将分配给_password。=值的含义是什么?或do?属性集(ter)有一个名为
value
的特殊关键字,它包含分配给属性的值。所以当您编写这样的代码时:var me=newuser(“Erno”,“123”);me.Password=“456”;setter将被调用,其值将为“456”,并将被分配给_password。您还应该显示得到的错误消息。您还应该显示得到的错误消息。