這篇文章主要講解了“C#基礎(chǔ)知識(shí)總結(jié)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“C#基礎(chǔ)知識(shí)總結(jié)”吧!
在松嶺等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站,外貿(mào)網(wǎng)站制作,松嶺網(wǎng)站建設(shè)費(fèi)用合理。
C#基礎(chǔ)知識(shí)之new 修飾符是起什么作用?
new 修飾符與 new 操作符是兩個(gè)概念,new 修飾符用于聲明類(lèi)或類(lèi)的成員,表示隱藏了基類(lèi)中同名的成員。而new 操作符用于實(shí)例化一個(gè)類(lèi)型,new 修飾符只能用于繼承類(lèi),一般用于彌補(bǔ)基類(lèi)設(shè)計(jì)的不足,new 修飾符和 override 修飾符不可同時(shí)用在一個(gè)成員上,因?yàn)檫@兩個(gè)修飾符在含義上互相排斥
示例:
using System; using System.Collections.Generic; using System.Text; namespace Example09 { class BaseClass { //基類(lèi)設(shè)計(jì)者聲明了一個(gè)PI的公共變量,方便進(jìn)行運(yùn)算public static double PI = 3.1415; } class DervieClass : BaseClass { //繼承類(lèi)發(fā)現(xiàn)該變量的值不能滿(mǎn)足運(yùn)算精度,于是可以通過(guò)new修飾符顯示隱藏基類(lèi)中的聲明 public new static double PI = 3.1415926; } class Program { static void Main(string[] args){ Console.WriteLine(BaseClass.PI); Console.WriteLine(DervieClass.PI); Console.ReadLine(); }
C#基礎(chǔ)知識(shí)之this 關(guān)鍵字的含義?
this 是一個(gè)保留字,僅限于構(gòu)造函數(shù)和方法成員中使用,在類(lèi)的構(gòu)造函數(shù)中出現(xiàn)表示對(duì)正在構(gòu)造的對(duì)象本身的引用,在類(lèi)的方法中出現(xiàn)表示對(duì)調(diào)用該方法的對(duì)象的引用,在結(jié)構(gòu)的構(gòu)造上函數(shù)中出現(xiàn)表示對(duì)正在構(gòu)造的結(jié)構(gòu)的引用,在結(jié)構(gòu)的方法中出現(xiàn)表示對(duì)調(diào)用該方法的結(jié)果的引用,this 保留字不能用于靜態(tài)成員的實(shí)現(xiàn)里,因?yàn)檫@時(shí)對(duì)象或結(jié)構(gòu)并未實(shí)例化,在 C# 系統(tǒng)中,this 實(shí)際上是一個(gè)常量,所以不能使用 this++ 這樣的運(yùn)算,this 保留字一般用于限定同名的隱藏成員、將對(duì)象本身做為參數(shù)、聲明索引訪(fǎng)問(wèn)器、判斷傳入?yún)?shù)的對(duì)象是否為本身
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example10 {
class Class1 {
private double c;
private string value;
public double C {
get {
return c;
}
public Class1(double c){
//限定同名的隱藏成員this.c = c;
}
public Class1(Class1 value){
//用對(duì)象本身實(shí)例化自己沒(méi)有意義
if (this != value){
c = value.C;
}
public override string ToString(){
//將對(duì)象本身做為參數(shù)return string.Format
("{0} Celsius = {1} Fahrenheit", c, UnitTransClass.C2F(this));}
//由于好奇,在這做了一個(gè)效率測(cè)試,想看看到底哪種方式訪(fǎng)問(wèn)成員變量更快,結(jié)論:區(qū)別不大……
public string Test1(){
long vTickCount = Environment.TickCount;for (int i = 0; i < 10000000; i++)
this.value = i.ToString();
return string.Format
("Have this.: {0} MSEL", Environment.TickCount - vTickCount);}
public string Test2(){
long vTickCount = Environment.TickCount;
for (int i = 0; i < 10000000; i++)
value = i.ToString();
return string.Format("Don't have this.: {0} MSEL",
Environment.TickCount - vTickCount);}
class UnitTransClass {
public static double C2F(Class1 value){
//攝氏到華氏的轉(zhuǎn)換公式return 1.8 * value.C + 32;
}
class Program {
static void Main(string[] args){
Class1 tmpObj = new Class1(37.5);
Console.WriteLine(tmpObj);
Console.WriteLine(tmpObj.Test1());
Console.WriteLine(tmpObj.Test2());
Console.ReadLine();
}
C#基礎(chǔ)知識(shí)之可以使用抽象函數(shù)重寫(xiě)基類(lèi)中的虛函數(shù)嗎?
可以,但需使用 new 修飾符顯式聲明,表示隱藏了基類(lèi)中該函數(shù)的實(shí)現(xiàn)
示例:
class BaseClass { public virtual void F(){ Console.WriteLine("BaseClass.F"); } abstract class DeriveClass : BaseClass { public new abstract void F(); }
感謝各位的閱讀,以上就是“C#基礎(chǔ)知識(shí)總結(jié)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)C#基礎(chǔ)知識(shí)總結(jié)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!