gpt4 book ai didi

c# - 可能错误的空语句 - 在 C# 中什么都不做

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

我有以下内容

    WindowState WindowState_ = WindowState.Normal;
...
public override void Load()
{
...
var Value = StringLoad("WindowState", "");
if (Enum.TryParse(Value, out WindowState_))
;
else
WindowState = System.Windows.WindowState.Normal;
...
}

我可以重写为

        var Value = StringLoad("WindowState", "");
if (! Enum.TryParse(Value, out WindowState_))
WindowState = System.Windows.WindowState.Normal;

我找到了!有点难看,而且通常很难发现,而且 C# 中没有 ifNot 或 ifFail 哈哈!是否有像上面 C# 中的分号那样的“什么都不做”,它不会生成警告并且不会全局关闭此警告。

我乐于接受其他可以带来更好、更具可读性的编码的建议

谢谢。

最佳答案

我建议您使用局部变量。虽然这不会消除对 ! 运算符的需要,但它不会被复杂的表达式隐藏:

var Value = StringLoad("WindowState", "");
var isValidWindowState = Enum.TryParse(Value, out WindowState_);
if (!isValidWindowState)
{
WindowState = System.Windows.WindowState.Normal;
}

最重要的是,它概述了 Enum.TryParse 在此上下文中的用途。 Extract Variable也是家喻户晓的refactoring .

正如 M.kazem Akhgary 所指出的,您的应用程序的运行时行为没有改变,因为它(很可能)被编译为相同的字节码。

关于c# - 可能错误的空语句 - 在 C# 中什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432666/

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