熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

編程中string是不是引用類型?

2013-11-13 09:50:00  來源: .NET編程 

  在msdn上

  值類型主要由兩類組成

  結構

  枚舉

  結構分為以下幾類

  Numeric(數值)類型

  整型

  浮點型

  decimal

  bool

  用戶定義的結構

  也就是string屬於引用類型但是實際使用中

  class Program
{
static void StringCon(string str)
{
str=New String;
}

  public static void Main(string[] args)
{
ConsoleWriteLine(Hello World!);

  // TODO: Implement Functionality Here
string oldstr =str;
ConsoleWriteLine(before:{}oldstr );
StringCon(oldstr );
ConsoleWriteLine(after:{}oldstr );
ConsoleWrite(Press any key to continue );
ConsoleReadKey(true);
}
}
輸出beforestr
afterstr

  也就是沒有引用類型的應該有的表現這是為什麼了?

  實際上net設置string有個事實就是string一旦建立他的值是不可改變的而當將一個已經存在的字符串賦予新值的時候實際上在次過程中分配了一個新字符串(原有的字符串將被GC回收)

  static void StringCon(string str)// 相當於string str =oldstr
// str是oldstr的一個副本他們只是指向相同的地址
{
str=New String;// 相當於string str =new string(New String;)
// str現在的地址改變了而oldstr還是原先的地址
}
所有string在當作參數傳遞是有值類型的表現但是實際還是引用類型


From:http://tw.wingwit.com/Article/program/net/201311/11696.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.