c# 拷贝结构体_C#学习之Partial、结构体、枚举
1、繼承時(shí)的一個(gè)概念,“把不變的內(nèi)容寫到基類,在子類里寫經(jīng)常改變的內(nèi)容”。導(dǎo)致一個(gè)類仲只要有經(jīng)常改變的內(nèi)容,我們就要為它聲明一個(gè)派生類,如果改變的部分比較多,我們還得聲明多個(gè)或多層派生類,導(dǎo)致派生結(jié)構(gòu)非常復(fù)雜。
有了派生類,我們按照邏輯切分成幾塊,每塊作為一個(gè)邏輯單元單獨(dú)更新迭代,這些分塊合并起來(lái)還是一個(gè)類。
namespace ConsoleStudy {partial class StudyPartial{public string Report1(){return "report=>原方法";}static void Main(string[] args){StudyPartial sp = new StudyPartial();var report1 = sp.Report1();var report2 = sp.Report2();Console.WriteLine(report1);Console.WriteLine(report2);}}partial class StudyPartial{public string Report2(){return "report=>補(bǔ)充方法";}} }輸出結(jié)果可以看到,補(bǔ)充的方法也屬于StudyPartial這個(gè)類。
2、結(jié)構(gòu)體是值類型數(shù)據(jù)結(jié)構(gòu),它使得一個(gè)單一變量可以存儲(chǔ)各種數(shù)據(jù)類型的相關(guān)數(shù)據(jù)。struct關(guān)鍵字用于創(chuàng)建結(jié)構(gòu)體
- 值類型、可裝/拆箱
- 可實(shí)現(xiàn)接口,不能派生子類/結(jié)構(gòu)體
- 不能有顯式無(wú)參構(gòu)造器
3、結(jié)構(gòu)體實(shí)現(xiàn)接口
namespace ConsoleStudy {class StudyStruct{static void Main(string[] args){var book1 = new Book();book1.author = "Sunkist";book1.title = "C#";book1.subject = "computer";Console.WriteLine("book1 title:{0}",book1.title);Console.WriteLine("book1 author:{0}", book1.author);Console.WriteLine("book1 subject:{0}", book1.subject);book1.write();}}struct Book:IWrite{public string title;public string author;public string subject;public void write(){Console.WriteLine("U can write on the book");}}interface IWrite{void write();} }輸出結(jié)果:
結(jié)構(gòu)體不能有顯示無(wú)參構(gòu)造器,它已經(jīng)有默認(rèn)的無(wú)參構(gòu)造器,初始化字段為0或者null。
那么有參構(gòu)造呢?
可以說(shuō)有參構(gòu)造是沒(méi)有意義的,因?yàn)閯?chuàng)建對(duì)象后就是需要給字段賦值。
3、枚舉
- 人為限定取值范圍的整數(shù)
- 整數(shù)值的對(duì)應(yīng)
- 比特式用法
其中枚舉列表的每一個(gè)符號(hào)表達(dá)一個(gè)整數(shù)值,一個(gè)比它前面的符號(hào)大的整數(shù)值。默認(rèn)情況下,第一個(gè)枚舉符號(hào)的值是0..
namespace ConsoleStudy {class StudyEnum{static void Main(string[] args){var employee = new Person {Level = Level.Employee};var bigBoss = new Person {Level = Level.Bigboss};Console.WriteLine(employee.Level>bigBoss.Level);Console.WriteLine("Employee:{0}",(int)Level.Employee);Console.WriteLine("Bigboss:{0}",(int)Level.Bigboss);}}enum Level{Employee,Manager = 100,Boss = 200,Bigboss}class Person{public int Id { get; set; }public string Name { get; set; }public Level Level { get; set; }} }輸出結(jié)果:
其實(shí)在光標(biāo)放到vs里面時(shí),就可以看到
枚舉列表里每一個(gè)符號(hào)都有一個(gè)對(duì)應(yīng)的整數(shù)值。
比特位用法的更多內(nèi)容參考官方文檔 Non-exclusive members and the Flags attribute
總結(jié)
以上是生活随笔為你收集整理的c# 拷贝结构体_C#学习之Partial、结构体、枚举的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 怎么卸载电脑硬件驱动
- 下一篇: 世界名车排行榜介绍
