gpt4 book ai didi

c# - 强制 C# 方法只传递正参数?

转载 作者:行者123 更新时间:2023-11-30 13:12:52 24 4
gpt4 key购买 nike

我想强制我的方法只接受整数参数,如果它是正数。如果向该方法传递一个 整数,它应该抛出一个编译时错误。实现这一目标的最佳方法是什么?

目前我在方法中使用 Math.Abs​​(Int),但我希望错误发生在编译时。

最佳答案

只需将参数设为 uintushort。这将防止编译时的负输入。它不会阻止 0,但是......我假设你真的在非负输入之后而不是严格的正输入。

如果您的方法必须接受带符号的参数,则:

  • 您可以验证参数值,如果无效则抛出异常。 (与使用 Math.Abs​​ 尝试“修复”无效输入相比,这是一个好得多的主意。)
  • 你可以使用 Code Contracts向其他代码指示该参数应具有非负值,并且它将尝试证明在您调用该方法的任何地方,该值都将是非负的。这不会由 C# 编译器强制执行,但它仍然可以是构建时过程。

如果您采用异常方法,那么您还应该围绕调用您的方法的代码进行一组全面的单元测试 - 当然,该代码还应该验证它的输入。

关于c# - 强制 C# 方法只传递正参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28699421/

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