簡體   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