C中的virtula是什麼

2022-03-02 12:16:10 字數 4745 閱讀 9135

1樓:呦呦看我

c#中的virtula是一個方法修飾符,標識可被覆載的方法。意思是指實際上的,實質上的,虛擬的,虛的。它是定義虛擬函式的關鍵字。virtual方法分為虛方法和抽象方法。

一、abstract抽象方法

abstract關鍵字只能用在抽象類中修飾方法,並且沒有具體的實現。抽象方法的實現必須在派生類中使用override關鍵字來實現。

abstract:抽象方法宣告使用,是必須被派生類覆寫的方法,抽象類就是用來被繼承的;可以看成是沒有實現體的虛方法;如果類中包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其他一般方法;抽象類不能有實體的。

二、virtual虛方法

virtual關鍵字用於在基類中修飾方法。virtual的使用會有兩種情況:

1、在基類中定義了virtual方法,但在派生類中沒有重寫該虛方法。那麼在對派生類例項的呼叫中,該虛方法使用的是基類定義的方法。

2、在基類中定義了virtual方法,然後在派生類中使用override重寫該方法。那麼在對派生類例項的呼叫中,該虛方法使用的是派生重寫的方法。

擴充套件資料

virtual用虛方法標記:

a、可在派生類中以override覆蓋此方法

b、不覆蓋也可由物件呼叫

c、無此標記的方法(也無其他標記),重寫時需用new隱藏原方法

abstract 與virtual : 方法重寫時都使用 override 關鍵字

介面可以通過類來實現,當類的基列表同時包含基類和介面時,列表中首先出現的是基類;類必須要實現其抽象方法。

介面定義以大寫字母i開頭。方法只定義其名稱,在c#中,方法預設是公有方法;用public修飾方法是不允許的,否則會出現編譯錯誤;介面可以從別的介面繼承,如果是繼承多個介面,則父介面列表用逗號間隔。

2樓:凡筱雲

c#中的virtula的意思是實際上的,實質上的,虛擬的,虛的。virtual是c++ oo機制中很重要的一個關鍵字,virtual方法分為虛方法和抽象方法。

一、virtual方法(虛方法)

virtual關鍵字用於在基類中修飾方法。virtual的使用會有兩種情況:

情況1:在基類中定義了virtual方法,但在派生類中沒有重寫該虛方法。那麼在對派生類例項的呼叫中,該虛方法使用的是基類定義的方法。

情況2:在基類中定義了virtual方法,然後在派生類中使用override重寫該方法。那麼在對派生類例項的呼叫中,該虛方法使用的是派生重寫的方法。

二、abstract方法(抽象方法)

abstract關鍵字只能用在抽象類中修飾方法,並且沒有具體的實現。抽象方法的實現必須在派生類中使用override關鍵字來實現。

abstract:抽象方法宣告使用,是必須被派生類覆寫的方法,抽象類就是用來被繼承的;可以看成是沒有實現體的虛方法;如果類中包含抽象方法,那麼類就必須定義為抽象類,不論是否還包含其他一般方法;抽象類不能有實體的。

3樓:匿名使用者

在基類(父類)中用virtual修飾符宣告一個虛方法,然後在在派生類(子類)中用override修飾符覆蓋基類虛方法。表明是對基類的虛方法過載。

這種優勢在於它可以在程式執行時再決定呼叫哪一個方法,這就是所謂的「執行時多型」

或者稱動態繫結。

4樓:匿名使用者

這是實現物件導向裡面最主要得特徵之一多型的重要途徑,用它定義的方法是虛擬的方法,在繼承自他的類重可用override來重寫這個方法來實現多型的特徵

5樓:

樓上的說對了.

virtual 放在方法前面就是說這個方法可以被派生的類用來重寫

也就是派生類可以重新寫一個與基類同名的方法..

6樓:我愛蘇銳

virtual關鍵字用於指定屬性或方法在派生類中重寫.

再寫點吧

預設情況下,派生類類從其基類繼承屬性和方法,如果繼承的屬性或方法需要在派生類中有不同的行為,則可以重寫它,即可以在派生類中定義該屬性或方法的新實現,這時在基類中該屬性或方法必須用virtual關鍵字修飾.virtual關鍵字用於指定屬性或方法時可以在派生類中重寫.具有virtual關鍵字的方法或屬性被稱作虛擬成員.

class a

}class b:a}

c#中做查詢 用dropdownlist ,如何設定預設值(**等 急。。。)

7樓:匿名使用者

this.ddltype.items.insert(0,new listitem("全部","-1");

給每個下拉框插入一項!value值為-1,你取值的時候判斷value是否為-1.是就不新增該欄位的限制,反之就新增!

8樓:

繫結資料的後,加上

listitem li = new listitem("all", "0");

dropdownlist1.items.insert(0, li);

c# this.suspendlayout有什麼作用

9樓:匿名使用者

為了防止layout事件的發生。這個事件將引發重新繪圖的事件,如果介面上控制元件較多的話,改變控制元件某些屬性時,由於不斷地重畫,效能變低,所以用suspendlayout來阻止。

resumelayou可以結束上面的限制。

c#怎麼定義lable陣列?

10樓:匿名使用者

你想定義的是 label標籤 陣列吧?

label labels=new label[2];//例如2個

for(int x=0;x

11樓:

listlistlabel = new list();

label la1=new label();

listlabel.add(la1);

。。。。

c#怎麼把100個label控制元件加到一維陣列中,用陣列元素來操作屬性

12樓:匿名使用者

就是label陣列啊來,申明和其它數源組一樣

label a=new label[100];//宣告長度為100的label陣列

初始化後a裡面的每一個元素都是一個label,就像你說的a[0]就相當於label1,a[1]就相當於label2

呼叫陣列中的label就可以按序執行各種操作。

也可以申明一個listla=new list();label資料連結串列

你任何一個label控制元件都可以隨時插入其中,比如la.add(label1);

la.add(label2);等,連結串列可以不用限定初始長度,隨入隨出。。用起來也很方便

你可以根據實際情況來選擇需求。

13樓:匿名使用者

首先你想幹什麼copy?再一個label在開發中說是控bai件,du在操作中說是對像 操作對像就行zhi

建議用for迴圈動dao態生成lable 生成的過程中進行屬性的操作 因為lable一旦生成就是控制元件了,再操作的話只能根據你生成時控制元件的名稱來操作,比如

for(i=1;=<5;i++)

操作時((lable)text2).text等屬性呼叫

14樓:匿名使用者

label arr = new label[100];

for(int i=0; ilist = new list();

for(int i=0; i<100; i++)

15樓:樂樂木頭人

string strarry;

var labels=winform.findcotrllers("label");

for(i=0;i<100;i++)

怎麼在c#中的非窗體類中,改變窗體的控制元件(如label1的值)呢,謝謝

16樓:匿名使用者

在窗體類中新增靜態例項, 外部class即可以和窗體類解耦在任意位置呼叫窗體類獲取例項方法, 訪問窗體類控制元件當然需要外部訪問的控制元件必須是public, 或者遍歷窗體的controls

class form1 : form

public static form1 getinstance()}class chang}

17樓:匿名使用者

首先窗體和類要在同一個名稱空間中

class change() //非窗體類_la.text="改變";//可以修改了}//窗體內

public partial class frm : form{private change ch;

ch=new change(... ,label1,) //窗體呼叫change類時把label1傳遞過去。}

18樓:匿名使用者

將要在其它類呼叫的控制元件label1宣告為public(可以在控制元件的屬性面板裡設定,預設為private的),

然後將 form1的例項傳給change例項可以建立一個建構函式

public class form1 :form}public class change()public void changelabel()}

19樓:匿名使用者

public class change(label mylable)

呼叫的時候:

change(this.lable1);

c 中的 int是什麼意思,C 中的 int 是什麼意思

定義一個int型的指標 例如 int p 定義一個指向int型變數的指標char p1 定義一個指向char型變數的指標int p2 定義一個指向int型指標的指標,即指向指標的指標 name本身是一個char 型的變數,就是一個指標,指向輸入的名字字串的首字元的地址。如果直接輸出name,輸出的就...

C中的 是什麼意思,C 中 int 是什麼意思?

可空型別修飾符 引用型別可以使用空引用表示一個不存在的值,而值型別通常不能表示為空。例如string str null 是正確的,int i null 編譯器就會報錯。為了使值型別也可為空,就可以使用可空型別,即用可空型別修飾符 來表示,表現形式為 t?例如 int?表示可空的整形,datetime...

c中是什麼意思C中是什麼意思

一般被稱作指標運算子 又叫反向取址運算子,與 作用相反 指標,其實就是一個變數,只是它的值是另一個變數或是常量的地址罷了,而 的作用便是把這個地址所存放的值取出,所以叫作反向取址運算子 int i,p i int q p 指向指標的指標。int i,p i int q p 指向指標的指標。哦,不同情...