1、string和String的区别?object与Object的区别?
2、什么情况下默认传值、什么情况下默认传引用(即不加ref和out的时候)?
3、默认传引用的时候,如果再加上ref(或out),有没有区别?
4、string(或String)默认传值还是传引用?
2、什么情况下默认传值、什么情况下默认传引用(即不加ref和out的时候)?
3、默认传引用的时候,如果再加上ref(或out),有没有区别?
4、string(或String)默认传值还是传引用?
调试欢乐多
string 是引用类型.
2 和 3 这个建议你好好的看看C#的值类型和引用类型,这个知识点.系统的看了.相信你会真正明白他们的内存机制.在这里简单回答是没有用的.
2.值类型按值传递 引用类型按引用传递(string类型除外)[这个概念比较重要,网上找代码看看]
3.本质上没有什么区别,加上后方法签名变了,另外ref的话 方法外必须初始化
4.string 你把它当作按值传递好了 自己写一下代码看看 多动手给分 ^_^
String 是一个类
string 是一个方法 类型
2 ref,out 看你函数需要,比如
函数中需要修改原指向变量值的 就用ref 引用 修改了 既修改指向地址
可以理解为指针吧out 么,在一般 函数返回一个对象之后 还想继续返回其他值 可以使用一下3 string 类型赋值就将建立一个新的副本以前的数据将抛弃,也就是一个新的引用
所以才会有StringBuilder这个东西.
----在C#中没有区别,但是在FrameWork中,String是CTS规范的类型,而string是C#中的类;后者一样
2、什么情况下默认传值、什么情况下默认传引用(即不加ref和out的时候)?
----值类型总是传值,引用类型传递引用和分配在堆上的值(例如一个包含值类型的类)
3、默认传引用的时候,如果再加上ref(或out),有没有区别?
----有。ref的作用是改变变量的作用域,并不是改变变量的传递方式
4、string(或String)默认传值还是传引用?
----string是引用类型,传递引用
String 是一个类
string 是一个方法 类型
2 ref,out 看你函数需要,比如
函数中需要修改原指向变量值的 就用ref 引用 修改了 既修改指向地址
可以理解为指针吧out 么,在一般 函数返回一个对象之后 还想继续返回其他值 可以使用一下3 string 类型赋值就将建立一个新的副本以前的数据将抛弃,也就是一个新的引用
所以才会有StringBuilder这个东西.
{
public static void Change(string a)
{
a = "abc";
}
public static void Main()
{
string a = "123";
Console.WriteLine(a);
Change(a);
Console.WriteLine(a);
}
}输出为:
123
123
--string比较符合C#的编码规范,而String为CLS中的规范,实现.NET跨语言的特性。后者一样。
2、什么情况下默认传值、什么情况下默认传引用(即不加ref和out的时候)?
--默认情况下,参数为值类型时传值,参数为引用类型的时传引用。
--若参数为值类型,我加上ref,则采用引用传递3、默认传引用的时候,如果再加上ref(或out),有没有区别?
--没有区别4、string(或String)默认传值还是传引用?
--传引用
这个在谭浩强的C里讲的很清楚。建议看看。很多时候 传送地址 比 申请空间复制数据 要更快吧。