2013-03-21 42 views
1

例如:當我創建一個新類的實例時,我該如何做到這一點,它必須得到一個參數?

class WebCrawler 
{ 
    List<string> currentCrawlingSite; 
    List<string> sitesToCrawl; 
    RetrieveWebContent retwebcontent; 

    public WebCrawler() 
    { 
    } 
} 

當我做WebCrawler = new WebCrawler(parameter here) ...

+1

在構造函數中放入一個參數:'public WebCrawler(string parameter){}' – sll 2013-03-21 09:34:45

+0

這些類型的問題不屬於這裏,請閱讀至少一些基本教程或C#和類設計的書。 – 2013-03-21 09:43:13

回答

4

添加另一個構造上您的課;

public WebCrawler(parameter here) 
{ 
} 

之後,你需要刪除一個構造函數,所以人們可以創建類的實例沒有提供任何參數。

您可以像

WebCrawler w = new WebCrawler(parameter here);

您可以閱讀更多的信息從Instance Constructors

創建它的實例,這是一個DEMO

+0

OP說「*它必須得到一個參數*」。這並不意味着刪除無參數的構造函數以及添加一個新的? – mattytommo 2013-03-21 09:35:44

+0

@mattytommo是的,你是對的。由於問題不清楚,我的錯..更新.. – 2013-03-21 09:40:31

2

創建參數的構造函數要被用戶提供:

public WebCrawler(string param1, int param2) 
{ 
} 

當一個像任何構造函數添加默認的(無參數)不再可用,除非你自己寫吧:

public WebCrawler() 
{ 
} 

所以只是刪除,並且用戶將無法不提供這些參數來創建類的實例對象。您也可以製作相同的無參數構造函數privateprotected

Instance Constructors (C# Programming Guide)

+0

+1由於是唯一一個說刪除空白的人,因爲OP確實說過一個值**必須**。 – mattytommo 2013-03-21 09:36:41

2

您可以進行參數的構造函數private ...

private WebCrawler() 
{ 
} 

意味着沒有消費者/呼叫者必須調用它的能力。

然後,您只有一個構造函數,他們可以使用:

public WebCrawler(string something) 
{ 
} 
1

添加另一個構造函數接受一個參數:

public WebCrawler(string someParameter) 
{ 

} 
相關問題