繁体   English   中英

不包含带有4个参数的构造函数?

[英]Does not contain a constructor that takes 4 arguments?

我对编程还很陌生,现在已经在这个问题上停留了一段时间,我在整个互联网上都在寻找该问题的答案,但是对于为什么它不起作用仍然感到困惑。 编译器说下面的代码不包含带有4个参数的构造函数? 我不明白为什么?

代码是:

public class Users
{
    private int _ID;
    private string _FName;
    private string _LName;
    private string _Address;
    private string _Phone;

    public int ID
    {
        get { return _ID; }
    }

    public string FName
    {
        get { return _FName; }
    }

    public string LName
    {
        get { return _LName; }
    }

    public string Address
    {
        get { return _Address; }
    }

    public string Phone
    {
        get { return _Phone; }
    }
}

有问题的代码是:

public static void Insert(string FName, string LName, string Address, string Phone)
{
    Users newUser = new Users(FName, LName, Address, Phone);
    newUser.Save();
}

声明一个带有4个参数的构造函数:

class User
{
    public User(string firstName, string lastName, string address, string phone)
    {
       _fName = firstName;
       ....
    }
}

用法:

User user = new User("Joe", ...);

或在类属性中添加公共设置器,然后使用对象初始化器:

public string FirstName { get; set; } // notice public

用法:

User user = new User { FirstName = "Joe", ... };

当您编写new Users(...)您正在调用Users类的构造函数。 由于您尚未定义一个,因此默认值将接受零个参数,而不是您所使用的四个。

您可以使用默认构造函数,并使用对象初始化程序设置属性。 为此,请替换为:

Users newUser = new Users(FName, LName, Address, Phone);

有了这个:

Users newUser = new Users() { FName = FName, LName = LName, Address = Address, Phone = Phone };

或者,您可以添加一个带有四个参数的构造函数,如下所示:

public Users(string fName, string lName, string address, string phone)
{
    FName = fName;
    LName = lName;
    Address = address;
    Phone = phone;
}

我对C#不太熟悉,但是您的类似乎没有声明构造函数。 您在声明变量FName,LName,Address和Phone,但它们从未获得任何值。

您可以尝试将其添加到声明下面的Users类中:

public Users(String fname, String lname, String address, String phone)
{
    FName = fname;
    LName = lname;
    Address = address;
    Phone = phone;
}

您可能还考虑将“用户”的名称更改为“用户”,因为类的每个实例都代表一个用户,而不是它们的集合。

您需要一个构造函数。 没有给出。 必须写出来。

我见过有人试图给构造函数提供与其数量相同的参数。 但是,如果构造函数很可能已经存在,那么您需要做的就是:

Users user1 = new Users();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM