.net(c#)中的new關(guān)鍵字詳細(xì)介紹
1)new 運(yùn)算符:用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。這種大家都比較熟悉,沒什么好說的了。
2)new 修飾符:在用作修飾符時(shí),new 關(guān)鍵字可以顯式隱藏從基類繼承的成員。
3)new 約束:用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。
new關(guān)鍵字在我們的程序中可謂是無時(shí)不刻在用到,那么new關(guān)鍵字都可以用在哪些地方呢?考慮以下幾個(gè)問題:
1、new一個(gè)class對(duì)象和new一個(gè)struct或者new一個(gè)enum有什么不同?
答:new一個(gè)class時(shí),new完成2個(gè)內(nèi)容:一是調(diào)用newobj命令為實(shí)例在托管堆中分配內(nèi)存,二是調(diào)用構(gòu)造函數(shù)實(shí)現(xiàn)對(duì)象初始化。
new一個(gè)struct時(shí),new運(yùn)算符用于調(diào)用其構(gòu)造函數(shù),完成實(shí)例的初始化。
2、new在.NET中除了創(chuàng)建對(duì)象實(shí)例外,還可以做什么?
答:new關(guān)鍵字:作為運(yùn)算符可以創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù);
作為修飾符可以用于向基類成員隱藏繼承成員,實(shí)現(xiàn)派生類中隱藏基類的virtual方法,不能和override共存;
作為約束可以在泛型聲明中約束可能用作類型參數(shù)的參數(shù)類型,即new約束指定泛型類聲明中的任何類型參數(shù)都必須要有公共的無參構(gòu)造函數(shù);
使用new關(guān)鍵字實(shí)現(xiàn)多態(tài)。
3、new運(yùn)算符可以重載嗎?
答:new運(yùn)算符不可以重載。
4、泛型中new關(guān)鍵字的作用?
答:new運(yùn)算符用于返回一個(gè)引用,指向系統(tǒng)分配的托管堆的內(nèi)存地址,new分配內(nèi)存失敗,將引發(fā)OutOfMemoryException異常。
5、new一個(gè)繼承下來的方法和override有什么區(qū)別?
答:new是隱藏基類方法,override是覆寫基類方法。如果要訪問new隱藏了的基類成員需要使用base關(guān)鍵字實(shí)現(xiàn)。
6、int i和int i = new int()有什么不同?
答:new一個(gè)int時(shí),new運(yùn)算符用于初始化其值為0,使構(gòu)造函數(shù)完成更優(yōu)越的初始化操作。
通過繼承隱藏名稱采用下列形式之一:
•引入類或結(jié)構(gòu)中的常數(shù)、指定、屬性或類型隱藏具有相同名稱的所有基類成員。
•引入類或結(jié)構(gòu)中的方法隱藏基類中具有相同名稱的屬性、字段和類型。 同時(shí)也隱藏具有相同簽名的所有基類方法。
•引入類或結(jié)構(gòu)中的索引器將隱藏具有相同名稱的所有基類索引器。
相關(guān)文章
簡單掌握Windows中C#啟動(dòng)外部程序進(jìn)程的方法
這篇文章主要介紹了Windows中C#啟動(dòng)外部程序進(jìn)程的方法,例子中同時(shí)包括了進(jìn)程關(guān)閉的方法,需要的朋友可以參考下2016-03-03C#實(shí)現(xiàn)矩陣加法、取負(fù)、數(shù)乘、乘法的方法
這篇文章主要介紹了C#實(shí)現(xiàn)矩陣加法、取負(fù)、數(shù)乘、乘法的方法,涉及C#針對(duì)矩陣的數(shù)學(xué)運(yùn)算相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-08-08DirectInfo.GetFiles返回?cái)?shù)組的默認(rèn)排序示例
這篇文章主要介紹了,DirectInfo.GetFiles返回?cái)?shù)組的默認(rèn)排序示例NTFS和CDFS下,是按照字母順序,而FAT下,按照文件創(chuàng)建時(shí)間順序2014-01-01C#中String.LastIndexOf方法小結(jié)
String.LastIndexOf()是C#中string類的一個(gè)方法,它用于在字符串中查找指定子字符串(或字符)最后一次出現(xiàn)的位置,并返回其索引,本文主要介紹了C#中String.LastIndexOf方法小結(jié),感興趣的可以了解一下2024-01-01C# 利用StringBuilder提升字符串拼接性能的小例子
一個(gè)項(xiàng)目中有數(shù)據(jù)圖表呈現(xiàn),數(shù)據(jù)量稍大時(shí)顯得很慢,在使用了StringBuilder后效果提升很明顯,下面有例子2013-07-07C# ThreadPool之QueueUserWorkItem使用案例詳解
這篇文章主要介紹了C# ThreadPool之QueueUserWorkItem使用案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08C# 中如何利用lambda實(shí)現(xiàn)委托事件的掛接
在寫一個(gè)小程序的時(shí)候,碰到了這樣的問題,需要用委托來掛接事件,但是又想在這事件中使用局部的變量,而委托一旦定義好后,掛接方就沒有辦法再添加額外的形參了。那有沒有什么辦法,可以實(shí)現(xiàn)呢2013-07-07