.net知识和学习方法系列(七)string类型
生活随笔
收集整理的這篇文章主要介紹了
.net知识和学习方法系列(七)string类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上篇文章中說到string類型是引用類型,咱們今天來看看。 1class Program
2????????{
3????????????????static void Main(string[] args)
4????????????????{
5????????????????????????int i = 10;
6????????????????????????string s = "改變前";
7????????????????????????Console.WriteLine("i={0}",i);
8????????????????????????Console.WriteLine("s={0}", s);
9????????????????????????Console.WriteLine("-----------------------");
10????????????????????????FangFa(i,s);
11????????????????????????Console.WriteLine("i={0}", i);
12????????????????????????Console.WriteLine("s={0}", s);
13????????????????}
14????????????????static void FangFa(int i, string s)
15????????????????{
16????????????????????????i = 100;
17????????????????????????s = "改變后";
18????????????????}
19????????} 從上面的代碼看,如果s為引用類型的話,在第二次輸出s的時候應該改變,但結果是
s的值并未發生變化,為什么呢?
看一下MSDN怎么說:
String 對象稱為不可變的(只讀),因為一旦創建了該對象,就不能修改該對象的值。看來似乎修改了 String 對象的方法實際上是返回一個包含修改內容的新 String 對象。
意思每個string變量都是一個String類的對象,String的對象有個特點,一旦創建,就是不能更改的了,那為什么能第二次給string類型的變量賦值呢?
1string a="123";
2a="456"; 這里的a第一次是"123",第二次是"456",其實本質上已經是兩個對象了,只不過值為"123"的對象名與值為"456"的對象名一樣,當用a這個變量的時候,IDE索引的是最后一次賦的值。
2????????{
3????????????????static void Main(string[] args)
4????????????????{
5????????????????????????int i = 10;
6????????????????????????string s = "改變前";
7????????????????????????Console.WriteLine("i={0}",i);
8????????????????????????Console.WriteLine("s={0}", s);
9????????????????????????Console.WriteLine("-----------------------");
10????????????????????????FangFa(i,s);
11????????????????????????Console.WriteLine("i={0}", i);
12????????????????????????Console.WriteLine("s={0}", s);
13????????????????}
14????????????????static void FangFa(int i, string s)
15????????????????{
16????????????????????????i = 100;
17????????????????????????s = "改變后";
18????????????????}
19????????} 從上面的代碼看,如果s為引用類型的話,在第二次輸出s的時候應該改變,但結果是
s的值并未發生變化,為什么呢?
看一下MSDN怎么說:
String 對象稱為不可變的(只讀),因為一旦創建了該對象,就不能修改該對象的值。看來似乎修改了 String 對象的方法實際上是返回一個包含修改內容的新 String 對象。
意思每個string變量都是一個String類的對象,String的對象有個特點,一旦創建,就是不能更改的了,那為什么能第二次給string類型的變量賦值呢?
1string a="123";
2a="456"; 這里的a第一次是"123",第二次是"456",其實本質上已經是兩個對象了,只不過值為"123"的對象名與值為"456"的對象名一樣,當用a這個變量的時候,IDE索引的是最后一次賦的值。
總結
以上是生活随笔為你收集整理的.net知识和学习方法系列(七)string类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作空间从Windows转向fc8
- 下一篇: ARM的嵌入式Linux移植体验之操作系