根据c# 7.2版本的说明,使用"in"运算符可以通过引用将变量传递到方法中,但无法在该方法内部进行设置。以下是一段示例代码:
现在我的问题是,使用“in”运算符和不使用“in”运算符之间有什么大的区别?
并调用类似的:
public static int Add(in int number1, in int number2)
{
return number1 + number2;
}
并使用以下方式进行调用
Add(ref myNo,4);
现在我的问题是,使用“in”运算符和不使用“in”运算符之间有什么大的区别?
public static int Add(int number1, in int number2)
{
return number1 + number2;
}
并调用类似的:
Add(3,4);
这段代码也实现了相同的功能:
如果我们不想设置它,就不能设置它。
因此,“in”和没有“in”的唯一区别是我们不能在方法内部设置吗? 如果不是,请给我另一个例子。
number1 = 3;
,但是在第一个中会导致编译错误。这基本上是一种确保你不会给传入的变量赋值的方法。 - juharrin
参数时,以下操作可以实现:Add(myNo, 4);
另一个重要的区别是,在异步方法或由闭包调用的方法中,无法使用in
参数。我建议阅读这篇文章:https://blogs.msdn.microsoft.com/mazhou/2018/01/08/c-7-series-part-8-in-parameters/ - Stuartin
关键字的变量变为readonly
,因此在函数范围内无法修改,而其他变量可以被修改。参考1,参考2。 - vikscool