Итак, может быть, я устал, но почему я не могу создать новый MatchCollection
?Невозможно создать новый MatchCollection - не определены конструкторы
У меня есть метод, который возвращает MatchCollection
по телефону regex.Matches
:
public static MatchCollection GetStringsWithinBiggerString(string sourceString)
{
Regex regex = new Regex(@"\$\(.+?\)");
return regex.Matches(sourceString);
}
То, что я хотел сделать, это вернуть пустую коллекцию, если параметр был нулевым:
public static MatchCollection GetStringsWithinBiggerString(string sourceString)
{
if (sourceString == null)
{
return new MatchCollection();
}
Regex regex = new Regex(@"\$\(.+?\)");
return regex.Matches(sourceString);
}
Но что выиграл» т из-за этой линии:
return new MatchCollection();
ошибка:
The type 'System.Text.RegularExpressions.MatchCollection' has no constructors defined.
Как можно определить тип конструктора? Я думал, что конструктор по умолчанию будет создан, если конструктор явно не определен. Невозможно создать новый экземпляр MatchCollection
для возврата моего метода?
На самом деле, если вы определили конструктор с аргументами, вы не можете использовать конструктор по умолчанию больше, если вы явно не объявить. –
+1. Ahhhh ... не думал о непубличных конструкторах. К сожалению. Благодарю. Поэтому я не могу вернуть пустой 'MatchCollection', если я не сделаю некоторую работу, как упоминал BrunoLM в его ответе? –