程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#基礎(四)(C#預定義值類型和引用類型)(3)

C#基礎(四)(C#預定義值類型和引用類型)(3)

編輯:關於C語言

4、預定義引用類型。

A、object類型。

這是C#的基類,所有的類都派生自它。所以,可以使用object引用綁定任何子類型的對象,object類 型執行許多基本的一般用途的方法,如 Equals() GetHashCode(),GetType()等,我們需要針對某些方法 進行“重寫”,這在後面我們將會學習到。

B、string類型。

注意,string類型是屬於引用類型。我們來看下面一段代碼,在修改一個字符串的時候,實際上是創 建了一個新的字符串,而並非修改了原來在字符串。我們來看一個示例:

using System;
using System.Windows;
namespace gosoa.com
{
  class MyFirstClass
  {
    static void Main()
    {
      string str1="GoSoA.com.cn";
      string str2=str1;
      Console.WriteLine("str1="+str1);
      Console.WriteLine("str2="+str2);
      str1="www.GoSoA.com.cn";
      Console.WriteLine("str1="+str1);
      Console.WriteLine("str2="+str2);
    }
  }
}

在這個示例中會輸出

str1="GoSoA.com.cn";

str2="GoSoA.com.cn";

str1="www.GoSoA.com.cn";

str2="GoSoA.com.cn";

這和我們所預期的引用類型正好相反,為什麼呢?

因為當我們用“GoSoA.com.cn”來初始化str1的時候,就在堆上分配了一個

string對象,當初始化str2的時候,也指向了這個對象。當str1改變的時候,並不是修改了原有的對 象,而是新創建了一個對象,但str2還是指向原來的對象,所以,str2的值並未改變。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved