如何解决当参数为真时,指示结果的属性不为空?
我有类似下面的方法。
public Node? GetLastNode(bool createNewIfEmpty = false)
{
// Return last node if any
if (Nodes.Count > 0)
return Nodes[Nodes.Count - 1];
// Return a new appended node,if requested
if (createNewIfEmpty)
{
Nodes.Add(new Node());
return Nodes[0];
}
// Otherwise,return null
return null;
}
启用可为空引用类型的情况下,是否有任何属性(或其他方式)指定只要 createNewIfEmpty
参数为 true
,此方法从不返回 null?
解决方法
我不确定 NotNullIfNotNull
能否为您解决这个问题,但另一种方法是将方法一分为二,除非您有严格的要求从参数中控制它:
public Node? GetLastNode()
{
// Return last node if any. Otherwise,return null
return Nodes.Count > 0
? Nodes[^1]
: null;
}
public Node GetOrCreateLastNode()
{
// Add new node if the list is empty
if (Nodes.Count == 0)
Nodes.Add(new Node());
// Return the last node
return Nodes[^1];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。