C# 如何为out参数指定Requires?
关于这个问题:C# 如何为out参数指定Requires?,c#,code-contracts,C#,Code Contracts,关于这个问题: 如何为surveures.Requires()-method执行此操作?在我的示例中,我错误地使用了out-关键字。 如上所述,我必须使用ref-参数 所以我对Contract.Requires()没有任何问题了,因为这毫无意义。out参数不是由调用者设置的,因此您不能给它附加任何前提条件(也不必)。在我的情况下,调用者已经设置了参数。该方法会更改该值。使用两个参数是否更好?如果调用者必须设置参数,则该参数实际上不是out参数。它是一个ref参数。不要以这种方式滥用out参数(即
如何为
surveures.Requires()
-method执行此操作?在我的示例中,我错误地使用了out
-关键字。
如上所述,我必须使用ref
-参数
所以我对Contract.Requires()没有任何问题了,因为这毫无意义。
out
参数不是由调用者设置的,因此您不能给它附加任何前提条件(也不必)。在我的情况下,调用者已经设置了参数。该方法会更改该值。使用两个参数是否更好?如果调用者必须设置参数,则该参数实际上不是out
参数。它是一个ref
参数。不要以这种方式滥用out
参数(即使允许),这可能会让调用该方法的人感到困惑。谢谢,这是我的错,我使用了两次变量。作为正常参数和作为输出参数。我绝对需要更多的咖啡@马修沃森:别担心,这样虐待他们是不可能的。在方法本身中分配out
参数之前,任何试图访问该参数的行为都会导致“使用未初始化的out参数”编译器错误。当然,您可以传递与out
和非out
参数相同的变量,但这是调用者的选择,并且具有可预测的语义。任何前提条件都只能在正则参数上定义。