C#學習日記14---引用型別 之 object類
阿新 • • 發佈:2019-02-04
先讓我們瞭解下什麼叫object類
Object類:
object類是所有型別的基類,所有型別都是由他派生而來,C#中所有的類都是直接或間接的從Sytem.Object類中繼承,(可能有點迷糊,沒關係,舉個例子,如果Object類是樹幹,我們前面所學的所有類就是 樹枝 或者 樹葉 了懂了吧)。因此,對Object型別的變數可以賦予任何型別的值。
定一個Object變數:
對Object型別的變數宣告,採用 object 關鍵字;這個關鍵字是在.Net框架結構為我們提供的預定義名字空間System中定義的,是類System.object 的別名。定義格式是這樣:
例項:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { object Int,Str,Doub,Ch; //定義4個object變數 Int = 1; //整形賦值成功 Str = "HC666"; //string型別賦值成功 Doub = 12.32; //double 型別賦值成功 Ch = '男'; //char 型別賦值成功 Console.WriteLine("Int = {0}\tStr = {1}\tDoub = {2}\tch = {3}",Int,Str,Doub,Ch); } } }
輸出結果:(完全一致^_^)
例項探索:
上面Object的定義中強調了,object是對所有的型別的基類,那我們定義一個Struct類與class類也可以轉化成object嗎?? 在上面的程式碼我加入了一些元素:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { public struct Student { public string name; public char sex; public uint age; } static void Main(string[] args) { Student stu = new Student{ name = "HC666",sex = '男',age = 19 }; //初始化 stu object m = stu; //將stu轉換為object型別的物件m Student x = (Student)m; //將object型別的物件m 轉換為Student x 要用強制轉換 Console.WriteLine("name:{0}\tsex:{1}\tage:{2}",x.name,x.sex,x.age); } } }
<span style="font-size:18px;">結果是這樣的:</span>
通過以上例子說明Struct型別與Class型別是可以與object型別相互轉化的,其轉化過程是這樣:
Struct ---->object---->struct;(只有Struct---->Object是不能輸出值的),在轉化過程中不會改變stu中的值
感謝對HC666的支援,,有問題歡迎私聊^_^……