ZKX's LAB

关于C#引用类型参数传递返回的问题 形式参数是引用类型

2020-07-19知识8

C++函数形式参数是string类型的常引用时,怎么正确传入参数? string str;对于函数fun(char*,xx,.)使用fun(str.c_str(),xx,.)可把string类型传入char*类型的函数参数中。string是C++编程语言中的字符串。string类是不可变的,对string类的任何改变,都是返回一个新的string类对象,而char*是C语言中的字符指针,两者进行相应的转换,即可进行专递。C#中 引用参数和输出参数有什么不同?他们以什么方式传递? 没什么太大区别。一个用关键字REF标示,一个用OUT标示。牵扯到数据是引用类型还是值类型。一般用这两个关键字你是想调用一个函数将某个值类型的数据通过一个函数后进行更改。传OUT定义的参数进去的时候这个参数在函数内部必须初始化。否则是不能进行编译的。ref和out 都是传递数据的地址,正因为传了地址,才能对源数据进行修改。一般情况下不加ref或者out的时候,传值类型的数据进去实际上传进去的是源数据的一个副本,也就是在内存中新开辟了一块空间,这里面存的值是与源数据相等的,这也就是为什么在传值类型数据的时候你如果不用return是无法修改原值的原因。但是你如果用了REF,或者OUT,这一切问题都解决了,因为他们传的是地址。out比起REF来说,还有一个用法就是可以作为多返回值来用,都知道函数只能有一个返回值,C#里,如果你想让一个函数有多个返回值,那么OUT能很容易解决。基本数据类型和引用数据类型作为方法参数,在传递时有什么不同之处 基本数据类来型按值传递,相当于复制了一份过去,引自用数据按地址传递,两个地方根据地址使用同百一份数据,如被更改,则原有数据也会更改,例度如数组,在传递数组时,如果接收到数组问之后,对其修改,那么原来的数组也会同时修改,答因为它们指向同一个地址!值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型 大多数编程语言提供内置的数据类型(比如整数和浮点数),这些数据类型会在作为参数传递时被复制(即,它们通过值来传递)。在.NET Framework 中,这些称为值类型。您可以创建值类型的实例,将它们作为参数传递,将它们存储为局部变量,或将它们存储在另一值类型或对象的字段中。值类型没有与存储类的实例相关的系统开销,并且它们不需要构造函数。值类型可以有字段、属性和事件。它们也有静态和非静态方法。当它们被装箱时,会从 System.ValueType 继承虚方法,并可实现零个或更多接口。值类型是密封的,这意味着不能从它们派生出其他类型。但是,可以直接对值类型定义虚方法,并且既可对该类型的已装箱形式,也可对未装箱形式调用这些方法。尽管不能从一种值类型派生出另一种类型,但是当所用语言处理虚方法比处理非虚方法或静态方法更方便时,可以对值类型定义虚方法。引用类型的变量又称为对象,可存储对实际数据的引用。关于C#引用类型参数传递返回的问题 楼主,你要首先了解一下,在.net里面,虽然字符串可以操作,但是实际上字符串一旦生成了,就不会再改变了。在JiaMi这个函数里面似乎是把MiWen给修改了,但是其实没改。首先,MiWen传进来的只是一个指针,指向的是原字符串(YuanWen)。等使用连接进行修改的时候,其实在CLR中是根据这个原文+\"abcd\"重新生成了一个新的字符串,并将这个新的字符串的指针给了MiWen。现在,MiWen这个局部变量指向的是修改后的字符串,但是在Main中的MiWen这个变量的指针还是指向在修改以前的字符串,也就是\"\",这就出现你所说的情况。要点如下:1.字符串做参数,传递的是引用,只是一个指针的复制,你修改参数的指向,影响不到调用它的函数中的那个指针所指向的内容2.字符串不可修改。你以任何一种形式修改了字符串,源字符串其实还在的,只是根据你的修改重新生成了一个新的字符串3.如果需要修改,两种方案,一是将修改后的字符串返回;二是作参数传字符串时使用 ref 传递,这样子函数中可以直接修改掉主函数中的指针指向,从而指向新的字符串。希望以上我辛苦打的字对你有帮助:-)Java:引用类型参数的传值,Java中的引用型数据包括数组,对象以及接口。而当参数是引用类型时,“传值”则变成了传递变量中的“引用”,而不是变量所引起的实体。。方法参数是基本类型和引用类型的区别 您好:Java中参数的传递方式有两种:传值和传引用。按值传递(call by value)表示方法接受的是调用者提供的值;按引用调用(call by reference)表示方法接受的是调用者提供的变量地址。传值,参数为基本类型时,是采用传值的方式,示例如下:传引用,一般参数为对象类型,示例如下:以上,供参考,希望对你有帮助!

#函数调用#string#引用类型#变量#字符串函数

随机阅读

qrcode
访问手机版