【筆記篇】C#筆記2

返回目錄:目錄請戳這里~

  1. C#數組
    基本概念不提。。
int[] a;
bool[] b = new bool[10];
float[] c = {0.5, 57.0, 233.3, 12345.67 };
double[] d = new double[/*3*/]{233.33, 1926.0817, 4396.0 };

然后數組和指針有很大的不同。。。
Array類不會用……
有多維數組和交錯數組。。。

//多維數組
int[ , ] a = new int [2,3] {{0, 1, 2 },{3, 4, 5 }
};
int val = a[1,2];
//交錯數組
int[][] a = new int[][]{new int[] {3, 4, 5 }, new int[]{ 0, 1, 2 };
int val = a[1][2];

= =
1. C#的字符串有Format(喜大普奔),不過格式化字符串是C#的用著略有不慣= = 然后里面封裝了大量的方法= =看不過來,有空會細看的。。

  1. struct(值類型)
    很像C++。。但是。。。

    • 不能定義析構函數和默認的構造函數
    • 不能繼承或被繼承
    • 成員不能是abstract virtual 或 protected (畢竟不能被繼承)
    • 不使用new即可被實例化,此時所有的字段都要被初始化。。
  2. enum(值類型):和C++一樣。水過了下一個。

  3. class(引用類型) //下面就很OO了哦

    • 類的默認訪問標識符是internal,成員的是private
    • 用法基本和C++沒差= =所以就這樣咯= =
  4. 繼承&&多態
    這個地方挺不好懂的(可能是我太弱了)= =

其實主要原因是因為學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本義是“抽象的”,這樣我們用這個關鍵字就可以創建抽象類,里面包含了抽象方法。。
代碼:

abstract class Parent
{public abstract void add();//抽象類里定義的抽象方法,無需主體,只需要一個聲明,如何實現交給派生類做就好了
}class Child : Parent
{private int a, b;public Child(){a = 1;b = 2;}public override void add(){Console.WriteLine(a + b);} //抽象方法,用override關鍵字重寫 就實現了這個add()方法的功能
}        

然后再說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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253747.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SFB 項目經驗-51-某上市企業2千人Exchange 2013升級2016高可用之傷01

SFB 項目經驗-51-某上市企業2千人Exchange 2013升級2016高可用之傷01(帶病撰寫項目實戰筆記)問題描述:2000人企業使用Exchange 2013郵件服務器標準版,n年!1)問題1:標準版僅支持5個郵箱數據庫。2&#xff09…

數字圖像處理——2D降噪

圖像降噪處理主要分為2D(空域)與3D降噪(時域/多幀),而2D降噪由于相關的實現算法豐富,效果各異,有著豐富的研究價值。理解2D降噪算法的流程,也對其他的增強算法有很大的幫助&#xff…

項目開發(Require + E.js)

最近在做的幾個項目,分別用了不同的框架跟方式,有個H5的項目,用了vue框架, 這個項目我還沒有正式加入進去, 等手頭的這個項目完成就可以去搞vue了, 現在手頭的這個項目是一個招聘的項目, 用到了…

五個常用的Linux監控腳本代碼

bash中 2>&1 & 的解釋 1、首先,bash中0,1,2三個數字分別代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即標準輸入(一般是鍵盤),標準輸出(一般是顯示屏,準…

AHB協議學習

1. 簡介 AHB(Advanced High Performance Bus)總線規范是AMBA(Advanced Microcontroller Bus Architecture) V2.0總線規范的一部分,AMBA總線規范是ARM公司提出的總線規范,被大多數SoC設計采用,它規定了AHB (Advanced High-performance Bus)、A…

jquery lazy load

LazyLoad是一個Js編寫的Jq插件,它可以延遲加載頁面中的圖片,在瀏覽器可視范圍中的圖片會被加載。如何使用&#xff1a;LazyLoad依賴于Jquery&#xff0c;在html的結尾處 ,就是在</body>前。<script type"text/javascript" src"jquery.js"><…

linux內核中的循環緩沖區

Linux內核中的循環緩沖區&#xff08;circular buffer&#xff09;為解決某些特殊情況下的競爭問題提供了一種免鎖的方法。這種特殊的情況就是當生產者和消費者都只有一個&#xff0c;而在其它情況下使用它也是必須要加鎖的。 循環緩沖區定義在include/linux/kfifo.h中&#xf…

js的規范寫法ES5(自己以后按照這樣寫)

1、引號的使用&#xff0c;單引號 優先&#xff08;如果不是引號嵌套&#xff0c;不要使用雙引號&#xff09; 正常情況&#xff1a;console.log(hello there) 雙引號轉碼&#xff1a; $("<div classbox>") 2、空格的使用問題&#xff1a;&#xff08…

刪除本地git的遠程分支和遠程刪除git服務器的分支

在項目中使用git管理代碼后&#xff0c;有些時候會創建很多不同名稱的分支&#xff0c;以此區分各個分支代碼功能。 而隨著代碼的合并&#xff0c;以前的分支就可能不再需要保存了&#xff0c;所以就要對沒有用的分支進行刪除&#xff0c;包括緊急回滾時從中抽取某一個版本記錄…

數字圖像處理——引導濾波

一、概述 引導濾波是由何愷明等人于2010年發表在ECCV的文章《Guided Image Filtering》中提出的&#xff0c;后續于2013年發表。引導過濾器根據局部線性模型原理&#xff0c;通過考慮引導圖像的內容來計算過濾輸出&#xff0c;引導圖像可以是輸入圖像本身或另一個不同的圖像。具…

Ubuntu 18.04換國內源

2019獨角獸企業重金招聘Python工程師標準>>> 參考文檔&#xff1a; https://blog.csdn.net/zhangjiahao14/article/details/80554616 https://blog.csdn.net/xiangxianghehe/article/details/80112149 1.復制源文件備份&#xff0c;以防萬一 我們要修改的文件是sour…

video4linux簡介

Video4linux&#xff08;簡稱V4L),是linux中關于視頻設備的內核驅動,現在已有Video4linux2&#xff0c;還未加入linux內核&#xff0c;使用需自己下載補丁。在Linux中&#xff0c;視頻設備是設備文件&#xff0c;可以像訪問普通文件一樣對其進行讀寫&#xff0c;攝像頭在/dev/v…

動態DPC算法學習

造成壞點的原因 感光元件芯片自身工藝技術瑕疵造成;光線采集存在缺陷;制造商產品差異;壞點分類 hot pixel: 固定保持較高的像素值,一般呈現為畫面高亮的點;dead pixel: 固定保持較低的像素值,一般在畫面中呈現為暗點;noise pixel:信號強度隨光照呈現的變化規律不符合正…

windows 郵槽mailslot 在服務程序內建立后客戶端無權限訪問(GetLastError() == 5)的問題...

郵槽創建在服務程序內&#xff0c;可以創建成功&#xff0c; 但外部客戶端連接時 m_hMailslot CreateFile("\\\\.\\mailslot\\zdpMailslot",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);GetLastError返回錯誤 5 &#xff0c;無權…

遞歸下降分析

對于給定的文法G[E] : E→ET|E-T|TT→T*F| T/F|FF→(E)|i 消除左遞歸后的文法是&#xff1a;E→TE E→TE|-TE|∑ T→FT T→*FT|/FT|∑ F→(E)|i 是否是LL(1)文法&#xff1f; select(E→TE)first(TE){(,i}select(E→TE)first(TE){}select(E→-TE)first(-TE){-}select(E→∑)fol…

SYS簡介

"sysfs is a ram-based filesystem initially based on ramfs. It provides a means to export kernel data structures, their attributes, and the linkages between them to userspace.” --- documentation/filesystems/sysfs.txt 可以先把documentation/filesystems/…

數字后端——布圖規劃

布圖規劃&#xff08;floorplan&#xff09;與布局&#xff08;place&#xff09;在芯片設計中占據著重要的地位&#xff0c;它的合理與否直接關系到芯片的時序收斂、布線通暢、電源穩定以及良品率。所以在整個芯片設計中&#xff0c;從布圖規劃到完成布局一般需要占據整個物理…

利用SSH傳輸文件

在linux下一般用scp這個命令來通過ssh傳輸文件。 1、從服務器上下載文件scp usernameservername:/path/filename /var/www/local_dir&#xff08;本地目錄&#xff09; 2、上傳本地文件到服務器scp /path/filename usernameservername:/path 例如scp /var/www/test.php root19…

App WebView實例化

a&#xff0c;高級設置里的環境變量 jdk的配置 b&#xff0c;下載Google的sdk&#xff0c;里面直接包含eclipse 1&#xff0c;新建一個項目 2&#xff0c;起個名字 3&#xff0c;設么走不做&#xff0c;next 4&#xff0c;只操作選擇顯示的三種方式 5&#xff0c;next什么都不做…

[動態代理三部曲:下] - 從動態代理,看Retrofit的源碼實現

前言 關于動態代理的系列文章&#xff0c;到此便進入了最后的“一出好戲”。前倆篇內容分別展開了&#xff1a;從源碼上&#xff0c;了解JDK實現動態代理的原理&#xff1b;以及從動態代理切入&#xff0c;學會看class文件結構的含義。 如果還沒有看過這倆篇文章的小伙伴&#…