gpt4 book ai didi

c# - 当你的算法已经处理它时处理 "not all code paths return a value"的技术

转载 作者:太空狗 更新时间:2023-10-30 00:41:52 26 4
gpt4 key购买 nike

<分区>

在 C# 中,有时会有不返回值的代码路径,编译器会出错并允许您修复它们是很好的。然而,有时结构上有一个地方没有,但 ALOGIRTHM 会阻止该结构发生。

这是一个简单的人为示例。

public static int test1(bool a)
{
if (a) return 1;
if (!a) return 2;
}

当然,人们会告诉我,我的“算法”很愚蠢,我的第二次测试是多余的,我应该这样做。

public static int test1(bool a)
{
if (a) return 1;
else return 2;
}

甚至

public static int test1(bool a)
{
if (a) return 1;
return 2;
}

我特意选择这个简单的“冗余”示例,而不是我的真实世界算法,因为我想专门关注这个问题,而不是我可以用大约 10 种不同的方式编写算法:)

那么有哪些可能的方法来处理这个问题,每种方法的优缺点是什么。

1) 是我们刚刚介绍的内容,也就是重构算法。有时这可能是不可能的,或者最终结果可能不符合要求、易于阅读/理解或维护。

其他只是返回一些永远不会发生的东西,比如 null.. 但在这种情况下,我正在处理一个整数,我必须输入 0,这感觉更脏

public static int test1(bool a)
{
if (a) return 1;
if (!a) return 2;
//this code never happens, but i need to keep the compiler happy
return 0;
}

或使用异常(exception)

public static int test1(bool a)
{
if (a) return 1;
if (!a) return 2;
throw new Exception("this code never happens, but i need to keep the compiler happy");
}

然而,每次我处理这个问题时,无论我采用何种技术,我都对结果不满意并且感觉有点脏。

还有其他选择吗?

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