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(); } }}
輸出的結果為:
從輸出的結果來看:在修改一個字符串的時候,實際上是創建了一個新的字符串,而并非修改了原來的字符串。
新聞熱點
疑難解答