【发布时间】:2019-05-29 05:05:04
【问题描述】:
public static class SomeRegexConsts
{
public static readonly string FullName = $"{Name} {Surname}";
private static readonly string Name = "[A-Z][a-z]+";
private static readonly string Surname = "[A-Z][a-z]+";
}
在上面的示例中,FullName 在运行时将等于" "。
这与静态字段的初始化方式(从上到下)有关。
一般来说,除了将其更改为 getter 之外,我没有看到任何其他解决方案:
public static string FullName => $"{Name} {Surname}";
关于如何改进此代码的任何想法,因为我不喜欢这个 lambda,并且将 FullName 移动到 Name 和 Surname 下面不是一个选项,因为 StyleCop 不允许我这样做。
【问题讨论】:
-
我希望这只是一个简化的示例,因为那些正则表达式模式与现实世界中的名称不匹配。
-
哦,是的,它被简化了。实际的正则表达式更长,但它不是这个问题的主题
-
您确实意识到有些名称的字母超出了
A-Z的范围? -
是的,但你可能没有意识到我已经回答了这个问题:)
-
谁读 cmets?对不起,关于再次问同样的问题。 :)