2012-08-03 35 views
2

我想創建鏈式構造函數,但是,我不擅長它,需要一些幫助! 我在構造函數的一個消息中告訴我沒有構造函數需要兩個參數。 ?鏈式構造函數沒有找到任何需要兩個參數?

這是什麼意思?我需要它來處理從另一個班級發送的3個字符串,並導致我進入第二個問題,這是我不能從我的其他班級調用這個...我已經嘗試了一切,我只是不能讓它做到:(我覺得有些東西我對構造函數錯過了很多,但是我確信有人可以用正確的方式指出我的意思!!請允許我在這裏使用任何和所有的幫助!!!我已經閱讀了關於這個主題的C#書籍,並且他們幫不上什麼忙和我有谷歌和很好的例子還有很多,但沒有真正使多大意義,對我來說,因爲我以爲我的代碼會工作。

這裏是我的課我已經構造函數我需要發送變量。

public class Phone 
    { 
    //Private Phone 
    private string m_persPhone; 
    //Other Phone 
    private string m_otherPhone; 
    //Work Phone 
    private string m_privatePhone; 


    public Phone()    
    { 
    } 

    public Phone(string personalPhone) 
     : this(personalPhone, string.Empty)  //<---Problem is HERE... 
    { 
    }  

    public Phone(string personalPhone, string otherPhone, string privatePhone) 
    { 
     m_persPhone = personalPhone; 
     m_otherPhone = otherPhone; 
     m_privatePhone = privatePhone; 
    } 

    public string personalPhone 
    { 
     //Personal Phone 
     get { return m_persPhone; } 

     set { m_persPhone = value; } 
    } 

    public string otherPhone 
    { 
     //Other Phone 
     get { return m_otherPhone; } 

     set { m_otherPhone = value; } 
    } 

    public string privatePhone 
    { 
     //Private Phone 
     get { return m_privatePhone; } 

     set { m_privatePhone = value; } 
    } 

    public string GetToStringItemsHeadings 
    { 
     get { return string.Format("{0,-20} {1, -20} {2, -20}", "Personal Phone", "Other Phone", "Private Phone"); } 
    } 

    public override string ToString() 
    { 
     string strOutPhone = string.Format("{0,-20} {1, -20} {2, -20}", m_persPhone, m_otherPhone, m_privatePhone); 
     return strOutPhone; 
    } 


} 

}

//問候

+0

嘗試:這個(personalPhone,的String.Empty,string.Emtpy) – 2012-08-03 20:18:55

回答

2

此代碼:

public Phone(string personalPhone) 
    : this(personalPhone, string.Empty) 

正在尋找一個構造函數兩個字符串參數。

代碼

this(personalPhone, string.Empty) 

的意思是「尋找對於需要兩個參數在我的參數列表(在這種情況下,兩個字符串),然後調用該構造此相同類的構造函數」的部分。

但是,您沒有定義一個。你可以使用一個帶有三個字符串參數,而不是像這樣:

public Phone(string personalPhone) 
    : this(personalPhone, string.Empty, string.Empty) 
2

你有三種構造函數:

public Phone()    

public Phone(string personalPhone) 
    : this(personalPhone, string.Empty)  //<---Problem is HERE... 

public Phone(string personalPhone, string otherPhone, string privatePhone) 

這些都不需要字符串,所以你的錯誤。

您可以通過可能通過第三串修復:

public Phone(string personalPhone) 
    : this(personalPhone, string.Empty, string.Empty) 

由它來鏈到你的最後一個構造函數。

請注意,您還可以考慮使用optional arguments有一個構造函數來代替:

public Phone(string personalPhone, string otherPhone = "", string privatePhone = "") 

這將讓你消除「額外」的鏈接構造。

1

你的類只有3個構造函數,沒有兩個參數。我認爲你的意思是基類初始化看起來像這樣:

: this(personalPhone, string.Empty, string.Empty) 

(注意它鏈接到3參數的構造函數)。

2

這是什麼意思?

究竟是什麼意思。這裏:

: this(personalPhone, string.Empty) 

你試圖鏈接到一個構造函數,它可以接受兩個字符串。但是這些是您定義的構造函數簽名:

public Phone() 
public Phone(string personalPhone) 
public Phone(string personalPhone, string otherPhone, string privatePhone) 

您期望鏈接到哪些那些?這些都沒有兩個參數。

我懷疑你想:

: this(personalPhone, string.Empty, string.Empty) 
相關問題