【问题标题】:c#: Ignore argument exception / An approach or trick to make my code workc#:忽略参数异常/使我的代码工作的方法或技巧
【发布时间】:2020-06-04 17:21:12
【问题描述】:

我正在做一个控制台应用程序网络抓取工具,基本上使用 Net Core 3.0,当我想使用代理或使用我自己的连接时,我的方法 IF 语句出现错误。请看下文。

基本上如果:

bool useProxy = false;
proxyFunction(proxy ? null : File.ReadAllLines(//HERE IS PATH TO FILE))

因此,如果布尔“useProxy”为假,它会返回 null,这正是我想要的,但它仍然在“File.ReadAllLines”上继续,并且由于布尔“useProxy”为假,它几乎会返回一个参数异常告诉它不能为空(File.ReadAllLines),这不应该在一开始就发生,它不应该再从那里继续,因为我的操作员“?”在“proxyFunction”上已经返回空值,因为布尔“useProxy”是假的。

请忽略“proxyFunction”,因为它只是 HttpClient 上我的代理类中的一个函数,如果 bool “useProxy”为空,则返回,如果不是,则运行“File.ReadAllLines”并返回其值。

感谢您的宝贵时间! :)

【问题讨论】:

  • 我想你可能把三元运算符倒过来了?如果proxy为真则返回null,如果为假则执行File.ReadAllLines
  • 糟糕。我的错,我的意思是,布尔“代理”是如果我希望它在没有代理的情况下工作。立即编辑。
  • 你的代码中proxyuseProxy有什么区别? File.ReadAllLines 将仅在您当前的实现中 proxyfalse 时运行。

标签: c# .net-core


【解决方案1】:

使用 try-catch 语句做了一个函数,在快速/出色的性能方面不是一个好方法,但无论如何都能解决问题。

【讨论】:

  • 这也是维护的一个问题。对于另一个必须查看代码并了解正在发生的事情的开发人员(可能在一个月后成为您自己!)来说,这可能并不明显。
猜你喜欢
  • 2018-09-07
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多