gpt4 book ai didi

c# - 条件流中 out 参数的用法和 CA1002 fxcop 错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:24 25 4
gpt4 key购买 nike

我有一个 xml 解析代码,我在其中解析来自 xml 的多个节点和属性。使用短路,我可以避免 if 在我的代码中,因为我只想在肯定的情况下继续处理。但是我在使用时收到参数的 fxcop 错误 CA1002

如何消除 fxcorp 错误?

public bool parseNode()
{
bool success = false;
string val1;
string val2;
string val3

success = TryGetAttributeValue(attribName1, out val1) &&
TryGetAttributeValue(attribName2, out val2) &&
TryGetAttributeValyue(attribName3, out val3);

if(success)
{
// do work
}
}

public bool TryGetAttributeValue(string attribName, out string value)
{
}

最佳答案

假设您正在谈论 CA1021 (避免使用参数)而不是 CA1002 (不要公开通用列表),FxCop 提示您的TryGetAttributeValue() 方法的out 参数。

您可以重构该方法,使其返回属性值而不是将其存储在 out 参数中,并在属性不存在时返回 null。从那里,您可以使用 null-coalescing operator ?? 保持相同的控制流:

public string TryGetAttributeValue(string attribName)
{
// Return attribute value, or null.
}

public bool ParseNode()
{
if ((TryGetAttributeValue(attribName1)
?? TryGetAttributeValue(attribName2)
?? TryGetAttributeValue(attribName3)) != null) {
// Do work.
}
}

关于c# - 条件流中 out 参数的用法和 CA1002 fxcop 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644225/

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