不包含接受4个参数的构造函数
本文关键字:构造函数 参数 4个 包含接 | 更新日期: 2023-09-27 18:01:59
我对编程相当陌生,我已经被这个问题困住了一段时间了,我在整个互联网上寻找这个问题的答案,但我仍然被难住了,为什么它不工作。编译器说,下面的代码不包含一个构造函数,接受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", ...);
或为类属性添加公共setter,然后使用对象初始化器:
public string FirstName { get; set; } // notice public
用法:
User user = new User { FirstName = "Joe", ... };
当您编写new Users(...)
时,您正在调用Users
类的构造函数。由于您没有定义一个,默认的一个接受0个参数,而不是您使用的4个。
可以使用默认构造函数并使用对象初始化器设置属性。要做到这一点,替换如下:
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'的名字改成'User',因为类的每个实例化代表一个User,而不是一个集合。
我见过一些人试图给构造函数提供与它拥有的字段数量相同的参数数量。但是如果构造函数很可能已经存在,那么你需要做的就是:
Users user1 = new Users();