gpt4 book ai didi

C# 检查数组的值,转到现有值的位置

转载 作者:行者123 更新时间:2023-11-30 22:00:42 24 4
gpt4 key购买 nike

我有一个(希望如此)简单的 C# 问题。

我正在从命令行读取文件的程序中解析参数,我允许短参数和长参数作为输入(所以对于我的场景/f 和 file 都是有效)

上述任一参数后的值应为要读取的文件名。

我想做的是根据选择的参数在数组中找到这个文件名,并将其复制到字符串中,同时不留任何漏洞。

我有正常运行的代码,但我不确定它是否“高效”(和安全)。

代码(删除评论和写入):

if ( args.Contains("/f") || args.Contains("file"))
{
int pos = Array.IndexOf(args, "/f");

if (pos == -1)
pos = Array.IndexOf(args, "file");

if (pos > -1)
pos++;

inputFile = (args[pos]);

if (File.Exists(inputFile) == false)
{
Environment.Exit(0);
}
}

有没有更有效的方法来做到这一点,也许在初始 if 语句中使用一些巧妙的逻辑来检查哪个参数有效,然后对该参数进行一次检查?使用 4 个 ifs 和 2 个 Array.IndexOf's 似乎很可怕,只是为了支持 2 种不同的方式来允许某人说他们想要输入一个文件...

谢谢!如果这看起来微不足道或者不是 SO 的意思,我很抱歉。不幸的是,我只是没有任何真正的方式来获得有关我的编码实践的反馈。

最佳答案

您的解决方案无法很好地扩展。想象一下,您有两个不同的参数,有短格式和长格式。那会有多少条件和索引检查?

您最好使用现有工具(例如 Command Line Parser Library )进行参数解析。

关于C# 检查数组的值,转到现有值的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342742/

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