我想在主题上插入另一个空检查。版本戳。有没有办法把它插入到序列相等参数中?
if (theme.VersionStamp != null)
{
if (!origTheme?.VersionStamp.SequenceEqual(theme.VersionStamp) ?? false)
{
throw new TwConcurrencyException();
}
}
这不是
必需的,因为无论如何您正在if (theme.VersionStamp != null){
进行空检查,然后继续。但是您仍然可以再次检查并传入默认参数,例如
if (!origTheme?.VersionStamp.SequenceEqual(theme.VersionStamp ?? new VersionStamp()) ?? false)
另外,我会将您的第一个null
检查扩展到下面
if (theme != null && theme.VersionStamp != null)
{
不幸的是,在传递参数时无法添加空检查。
您可以获得的最短是:
if (theme?.VersionStamp == null ||
!origTheme?.VersionStamp?.SequenceEqual(theme.VersionStamp) ?? false)
{
throw new TwConcurrencyException();
}
我不会像 Rahul 那样传递默认参数,因为如果origTheme
的VersionStamp
等于默认VersionStamp
SequenceEqual
则会错误地返回true