2011-08-16 20 views
1

我想實現類,即我們在.Net中有String類。在這方面,如果你檢查的時候,我們的代碼....像`String`一樣執行`Class`類

C#:

String strString = "Value-12346- ."; 
String[] strArray = strString.Substring(0, strString.Length - 1).TrimEnd().ToUpper().Split("-".ToCharArray()); 
在這個例子中

如果你檢查我們調用String類的多種功能,在每個功能即在Substring功能TrimEnd是調用並調用TrimEndSplit函數被調用。我想實施類似的。請幫助我。

很多謝謝!

回答

3

確保每個方法都返回一個相同類型的對象(或者你想要的類型),然後你可以調用對象上的方法(級聯或鏈)。字符串示例中的每個上述方法都會返回一個新字符串(請注意,字符串在此處是不可變的),因此您可以再次應用字符串函數等。

在相關說明中,請查看Fluent Interface的工作原理。顯示非流利,流利API的C#示例是一個很好的例子:http://en.wikipedia.org/wiki/Fluent_interface

public IConfigurationFluent SetColor(string newColor) 
     { 
      this.color = newColor; 
      return this; 
     } 
+2

我們再來強調一下。由於字符串是不可變的,每個函數都會返回一個NEW字符串對象。如果在像手機或嵌入式等資源受限的環境中工作,應該意識到這一點。 –

+0

+1提及Fluent接口。 – Vladimir

+0

許多感謝manojIds – Sikander

0

正如manojlds上文所指出的,你做到這一點通過使你的類的成員函數返回它們的主人類的類型。現在,特別是,String的方法每次都會返回一個新的字符串實例(而不是「修改」源代碼並返回它),因此您可能希望在方法中創建「this」的深層副本,然後對其進行任何更改新的對象並返回它。不僅如此,而且String類是不可變的。

對不起,太詳細。

+0

許多非常感謝! – Sikander

相關問題