大家好,今天来为大家解答ref是什么意思?用法、例句这个问题的一些问题点,包括直面ref与out关键词也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
1、很多初学者学习C#时,遇到ref和out关键字,会不太理解其中的原理和使用,一直都稀里糊涂的。对于稀里糊涂的知识,最好的办法就是直面它。那么今天就带大家直面ref与out关键字。
2、先给大家出个面试题,代码如下所示:
3、这道题表达的含义其实就是创建了一个变量a,然后调用了一个方法,该方法里对变量a进行赋值之后,变量a的值是否会发生变化。
4、大家把你认为正确的结果,在下方的留言板中写出来,然后再去公众号的次条文章中看下原因和分析。
5、堆栈简单来说,就是计算机存储数据的一个数据模型。
6、栈中主要是存放一些简单结构的数据和复杂数据的索引。
7、堆中主要是存储复杂数据的数据内容。
8、简单结构数据就是我们说的值类型,复杂结构数据就是我们说的引用类型。
9、进入方法里之后,方法里的所有数据会重新申请内存,因此方法里的a与方法外的a是没有关系的。
10、如果希望第三步输出的结果是10,应该怎么处理呢?
11、其实就是加了2个ref,结果如下:
12、ref的原理是将修饰的值类型的地址传给形参,有点像指针,所以使用后将改变原来的数值。
13、由于out是只输出的,因此必须要先通过参数传入,所以代码修改如下:
14、虽然有点鸡肋,但是说明了out的使用方法。
15、ref与out参数最大的区别在于ref是输入输出,out是仅输出,所以如果你需要传入,同时需要传出值,那么采用ref,如果你只是输出,那么采用out。
16、在语法上,使用ref时,参数必须要先赋值,否则会报错。
17、如果还不太好理解,可以与PLC进行结合,我们创建FC块的时候,参数类型会有In、InOut和Out,C#也是一样,普通的方法参数就是In,ref就是InOut,out就是Out。
18、无论是ref还是out,从某种意义上来说,都可以解决C#中的方法只能有一个返回值的问题。
关于ref是什么意思?用法、例句,直面ref与out关键词的介绍到此结束,希望对大家有所帮助。