【笔记篇】C#笔记2
返回目錄:目錄請戳這里~
基本概念不提。。
然后數組和指針有很大的不同。。。
Array類不會用……
有多維數組和交錯數組。。。
= =
1. C#的字符串有Format(喜大普奔),不過格式化字符串是C#的用著略有不慣= = 然后里面封裝了大量的方法= =看不過來,有空會細看的。。
struct(值類型)
很像C++。。但是。。。
- 不能定義析構函數和默認的構造函數
- 不能繼承或被繼承
- 成員不能是abstract virtual 或 protected (畢竟不能被繼承)
- 不使用new即可被實例化,此時所有的字段都要被初始化。。
enum(值類型):和C++一樣。水過了下一個。
class(引用類型) //下面就很OO了哦
- 類的默認訪問標識符是internal,成員的是private
- 用法基本和C++沒差= =所以就這樣咯= =
繼承&&多態
這個地方挺不好懂的(可能是我太弱了)= =
其實主要原因是因為學C++的時候就不怎么學這些東西(OI根本不考什么OO,你看里面有幾個不抖機靈的時候用class的)
不理解的話呢,建議各位打開自己的IDE實戰一下,亂改改代碼找找差異,這樣對每部分代碼是干什么的理解會更清楚一些= =
然后再扯一句VS對C#的補全非常的完備(畢竟MS一直推C#嘛),很多時候可以讓VS幫你完成很多操作,順便就可以理解一些語句的作用了~~
看代碼比理解概念清晰多了~
繼承的形式很簡單:
class Parent {... }class Child:Parent {... }基類的初始化
class Parent{protected int a, b;public Parent(int x,int y){a = x;b = y;}}class Child : Parent{public Child(int p, int q) : base(p, q){}}C#不支持多重繼承~但想實現多重繼承的話可以通過接口(interface)(這個還沒學,以后再說)
然后就是多態(不是什么多肽更不是什么墮胎= =)
(話說你們輸入法打“duotai”會出什么啊?)
繼承學C++的時候都用的少,多態什么的就更不懂了QAQ以前寫個項目的時候析構函數前面寫個virtual但不知道干啥用的啊~好在現在理解了_ (:з」∠) _
所以基本全靠自己體會(我就是自己打了打代碼理解的)
C#的多態性分為兩種:
- 靜態多態性
靜態多態性有兩種技術來實現:函數重載和運算符重載(這個我會啊2333就不說了)
- 動態多態性
動態多態性啊,開始的時候挺費解的。
分開說,先說abstract
abstract本義是“抽象的”,這樣我們用這個關鍵字就可以創建抽象類,里面包含了抽象方法。。
代碼:
然后再說virtual..
//這次是完整的程序了 using System;namespace HelloWorld {class Parent{protected int a, b;public Parent(int x,int y){a = x;b = y;}public virtual void add() //虛方法{Console.WriteLine("Parent:{0}", a + b);}}class Child : Parent{public Child(int p,int q) : base(p, q){}public override void add() //使用override關鍵字重寫了虛方法{Console.WriteLine("Child:{0}", a + b);}}class Child2 : Parent{//本類中并沒有重寫add()方法public Child2(int p,int q) : base(p, q){}}class MainProcess{public static void Main(){Child ch = new Child(3,4);Child2 ch2 = new Child2(5, 6);ch.add();ch2.add();}} }編譯、運行以上程序,可得結果:
Child:7
Parent:11
說明調用標有virtual方法時,先檢查有無重寫,有則按重寫執行,否則繼續往上找,直到找不到重寫則按virtual進行= =
差不多就是這樣。。。
本篇中需要回顧的:
1. Array類
2. C#字符串的方法們
3. 繼承和多態還要加強理解= =
還是要繼續加油啊~~
?
轉載于:https://www.cnblogs.com/enzymii/p/8412143.html
總結
以上是生活随笔為你收集整理的【笔记篇】C#笔记2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广发给利卡有积分吗?积分如何查询?
- 下一篇: [No0000112]ComputerI