1)字符串的直接赋值:自身字符串就是援用范例,应当运用 new 对象要领一个实例,然则微软为了轻易人人,能够直接定义字符串变量 而且赋值操纵,比方: string a = "我的中国心"; ,如许只是简化我们的操纵;
2)一个字符串赋值给另一个字符串变量:平常的援用范例会将两个援用变量指向同一个地点,然则一个字符串变量赋值给另一个字符串变量时,缺时竖立了两个差别的地点空间,比方:
string a = "12345"; string b = a;
上面的代码是两个差别的地点援用,只是把a的字符串内容赋值给b,a和b内容是一样的;
3)同一个字符串的屡次赋值:根据平常的头脑对一个字符串变量赋值,只是转变其内容,不会转变其地点,然则字符串比较奇葩,当给同一个字符串变量再次赋值的时刻,它会重新分配内存空间,竖立一个新的地点,然后把
这个地点赋值给本来的字符串变量,举例说明:
string a= "123"; a = "456"
当第二次给a赋值为"456"时,它是建立新的内存空间,然后把新建的内存地点赋值给a变量,之前的"123"的内存摒弃不必,守候垃圾接纳。
4)字符串作为函数参数通报:当字符串作为函数的参数通报时,自身是援用范例,应当是将变量的地点援用通报过去,今后在函数里对该参数的修正都邑转变该字符串的值,然则我通知你,效果它只是通报了该字符串的副本给
函数体,在函数里对该字符修正,竟然不影响通报参数的值,固然,字符串的通报也能够当援用范例运用,重要增加ref 即可,可截图:
5)字符串的比较:在字符串作为援用时,比较两个援用范例是不是相称,只是比较两个援用的地点是不是相称(除非你重载了Equal函数),然则当我们在比较字符串的时刻,发明实在他们比较的是字符串的内容,并非是援用的地点,
这是援用string类重载了equal函数,是指比较字符的内容,在这点上 == 和 equal的效果实际上是一样的;
6)字符串的内存驻留:当我们在建立具有雷同的字符串内容的变量时,这些字符串变量实在指向的同一个内存地点,这点有点像C++里的内联;
若有别的特别的地方,烦请高手赋予指导,若有什么差别看法的地方,请留言,人人互相进修,菜鸟才一步步生长起来,呵呵!!!
以上就是C#中援用范例之惯例string的细致引见的细致内容,更多请关注ki4网别的相干文章!