在我腦海中的某個地方,一個小小的聲音告訴我「下面的C#代碼有異味」。C#:比結合StartsWith和兩個ToUpperInvariant調用更好的方法
private const string STR_ConnectionString = "ConnectionString";
private readonly string upperCaseConnectionString = STR_ConnectionString.ToUpperInvariant();
// a lot further on
string keyAttributeValue = keyAttribute.Value;
if (keyAttributeValue.ToUpperInvariant().StartsWith(upperCaseConnectionString))
{
// some C# code handling a key that starts with "ConnectionString"
}
常量STR_ConnectionString
也用於代碼中的其他地方。
如何擺脫氣味?
寫入擴展方法,如果這樣的驗證經常在您的代碼中。 – Samich 2012-01-09 13:51:25
它味道好嗎?或者它聞起來不好?看起來對我來說很好:D – Shai 2012-01-09 13:51:54
+1 @Shai我可能應該提到原始的代碼庫是.NET 1.1,但它很快就會變成.NET 4,所以我在升級到.NET 4之後已經超負荷了。 – 2012-01-09 15:37:45