gpt4 book ai didi

c# - 无法创建新的 MatchCollection——未定义构造函数

转载 作者:太空狗 更新时间:2023-10-30 00:19:54 26 4
gpt4 key购买 nike

所以,也许我累了,但为什么我不能创建一个新的 MatchCollection

我有一个通过调用 regex.Matches 返回 MatchCollection 的方法:

public static MatchCollection GetStringsWithinBiggerString(string sourceString)
{
Regex regex = new Regex(@"\$\(.+?\)");

return regex.Matches(sourceString);
}

如果参数为 null,我想做的是返回一个空集合:

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 的新实例?

最佳答案

非常适合使用 Null Object模式!

像这样实现:

public static MatchCollection GetStringsWithinBiggerString(string sourceString)
{
Regex regex = new Regex(@"\$\(.+?\)");

return regex.Matches(sourceString ?? String.Empty);
}

关于c# - 无法创建新的 MatchCollection——未定义构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com