我想在theme.VersionStamp上插入另一个空检查。有没有办法可以将它插入到SequenceEqual参数中?
if (theme.VersionStamp != null)
{
if (!origTheme?.VersionStamp.SequenceEqual(theme.VersionStamp) ?? false)
{
throw new TwConcurrencyException();
}
}
答案 0 :(得分:1)
它不是必需的,因为无论如何你正在进行空检查if (theme.VersionStamp != null){
然后继续进行。但你仍然可以再次检查并传入一个默认参数,如
if (!origTheme?.VersionStamp.SequenceEqual(theme.VersionStamp ?? new VersionStamp()) ?? false)
另外,我会将您的第一张null
支票延长至
if (theme != null && theme.VersionStamp != null)
{
答案 1 :(得分:1)
不幸的是,在传递参数时添加空检查是不可能的。
你能得到的最短时间是:
if (theme?.VersionStamp == null ||
!origTheme?.VersionStamp?.SequenceEqual(theme.VersionStamp) ?? false)
{
throw new TwConcurrencyException();
}
我不会像Rahul那样传递默认参数,因为如果VersionStamp
的{{1}}等于默认origTheme
VersionStamp
则会错误地返回{ {1}}