Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为out参数指定Requires?_C#_Code Contracts - Fatal编程技术网

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
参数相同的变量,但这是调用者的选择,并且具有可预测的语义。任何前提条件都只能在正则参数上定义。