C#預界說數據類型之值類型和援用類型引見。本站提示廣大學習愛好者:(C#預界說數據類型之值類型和援用類型引見)文章只能為提供參考,不一定能成為您想要的結果。以下是C#預界說數據類型之值類型和援用類型引見正文
C#的預界說數據類型包含兩種,一種是值類型,一種是援用類型。值類型的變量在內存中是存儲在客棧中的,字面上懂得就是直接保留其值,如聲明一個屬於值類型的整型變量,並給它付與另外一個整型變量的值,則在內存中事前復制一個整型變量的值,然後將其付與方才聲明的整型變量,這時候內存中就會有兩個整型值。援用類型的變量在內存中是直接保留其值的援用。C#說話中年夜多半龐雜數據類型都是援用類型。
先來一個值類型的常量的例子
依據用戶輸出圓的半徑,求圓的面積的代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace area { class Program { static void Main(string[] args) { const double PI = 3.14; Console.WriteLine("請輸出一個整數為圓的半徑:"); int r = Convert.ToInt32(Console.ReadLine()); double Area = PI * r * r; Console.WriteLine("所求圓的面積為:"+Area); Console.ReadLine(); } } }
剖析: Console.WriteLine("請輸出一個整數為圓的半徑:");
int r = Convert.ToInt32(Console.ReadLine());這兩句是將輸出的前往的字符串轉換為整型停止算術運算。代碼中的Convert.ToInt32()辦法是將字符串轉換為整型的辦法。
在預界說的數據類型中,援用類型有object(對象)類型和string(字符串)類型兩種。
1、object類型是一切其他類型的基類型,所以可把任何類型的值賦給它。
就來看一個關於object類型的例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace objectType { class Program { static void Main(string[] args) { object a; a = 10; Console.WriteLine(a); Console.WriteLine(a.GetType()); a = true; Console.WriteLine(a); Console.WriteLine(a.GetType()); a = 10.0M; Console.WriteLine(a); Console.WriteLine(a.GetType()); Console.ReadLine(); } } }
剖析:代碼中的GetType()辦法是獲得變量的數據類型。第一次將整型值賦值給a,其次是布爾型,最初是decimal型。輸入的成果為:從輸入的成果可以表現出C#說話的類型壯大功效
2、string類型是用一對雙引號惹起來的字符,它是經由過程復制對其賦值的。
經由過程一個例子來完成字符串賦值是創立一個新的字符串來完成的:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace str { class Program { static void Main(string[] args) { string str1 = "hello"; string str2 = str1; Console.WriteLine("str1=" + str1); Console.WriteLine("str2=" + str2); str1 = "after"; Console.WriteLine("str1=" + str1); Console.WriteLine("str2=" + str2); Console.ReadLine(); } } }
輸入的成果為:
從輸入的成果來看:在修正一個字符串的時刻,現實上是創立了一個新的字符串,而並不是修正了本來的字符串。