[英]is there shorter way of calling non static method in c#?
我有一個StringFormatter
類,其中包含方法RemoveCharFromString
。
很長一段時間以來,我一直在創建類的新實例,然后像下面這樣使用它:
[...]
StringFormat sf = new StringFormat();
string exampleString = sf.RemoveCharFromString(inputString, '%');
[...]
現在,我不得不在一個類中一次使用此方法。 我認為完成上述代碼可能會有更短的方法,例如:
[...]
string exampleString = new StringFormat.RemoveCharFromString(inputString, '%');
[...]
有什么用嗎?
您可以實例化一個類並直接調用它的方法之一-您的第二個代碼示例僅在構造函數之后需要一個括號:
string exampleString = new StringFormatter().RemoveCharFromString(inputString, '%');
但是-在不了解方法內部的情況下,有些事情要考慮:
該方法的名稱表明它基本上是從字符串中刪除特定的string.Replace()
如果它刪除了所有出現的char,為什么不只使用string.Replace()
呢?
由於此方法似乎從其參數中獲取了所需的所有信息,並且不依賴也不更改StringFormatter
實例的狀態,因此為什么不將其設置為靜態方法呢?
在我看來,StringFormatter類是一堆適用於類型字符串的方法。 因此,一種選擇是考慮對字符串類型使用擴展方法
public static class StringFormatter
{
public static string RemoveCharFromString(this string value, char charToRemove)
{
//do your logic and then return a string
}
}
然后用
var exampleString = inputString.RemoveCharFromString('%');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.