我想添加一個擴展方法爲int,稱爲TryParseNull,它接受一個字符串作爲輸入,並返回轉換的整數,如果成功或null,如果字符串不是一個有效的整數。不能將TryParseNull擴展方法添加到int在C#
我跟着這個職位的doubleMe例如:using extension methods on int
我的擴展方法聲明如下:
public static class IntExtensions {
public static int? TryParseNull(this string s) {
int dummy;
int? value;
if (int.TryParse(s, out dummy)) {
value = dummy;
}
else {
value = null;
}
return value;
}
}
但是當我嘗試使用它像這樣的編譯器抱怨說,它不知道TryParseNull是什麼。我嘗試了下面兩個。
int? myNum = int?.TryParseNull("1");
int? myNum = int.TryParseNull("1");
編輯:我認爲這個問題是參數this string s
,但我傳遞一個字符串,所以我不知道如何糾正這一點。
編輯2:從下面的答案我可以看到問題是什麼,但是有沒有辦法讓語法int.TryParseNull("1")
?
'「1」.TryParseNull()' –
您不能將靜態方法添加到您不控制的類型。 – Will