C中在窗體中呼叫另普通類的成員變數不需要例項化類的物件

時間 2021-08-30 09:32:14

1樓:匿名使用者

這個看情況,如果是靜態成員變數的話,是不需要例項化的,否則必須例項化,編譯就不會過嘛。

2樓:匿名使用者

如果不是靜態類的話,必須要例項化,才可以呼叫。如果是靜態類則可以直接呼叫,類.變數,明白嗎???

3樓:資訊蒐集官

你可以宣告一個父類例項化一個子類試試,你把原來的**弄出來我看看。。。。

c#為什麼不能在一個類中呼叫另一個類的變數,而必須是在方法裡例項化後的呼叫

4樓:匿名使用者

你自己把自己都說進去了,你都說在classb中,是在執行b的**,如果要呼叫版x,就要先把classa給例項化,權讓編譯器知道你在用a了,才可以呼叫a中的x;你這不是承認可以這樣呼叫嗎?這個樓主反應的問題不是矛盾嗎?

其實是例項化a後沒有辦法呼叫a的成員,因為類的成員只有方法,欄位,屬性,索引等,這樣的呼叫根本無法被呼叫這個類的類所引用.

5樓:我是誰啊

在類b中使用類a中的變數,不寫在方法裡沒有任何意義

c#winform中為什麼一個窗體的物件可以呼叫在另一個窗體中建立的一個類未例項化下

6樓:匿名使用者

窗體下的全域性變數或屬性是本來就可以不經例項化而呼叫的,只不過此時它的值是null,例項化的過程可以理解成給它賦初值的過程

7樓:匿名使用者

物件都是需要例項化才能用的,你說的情況應該是你沒有找到例項化的地方而已。

你貼的**裡

re.se=report[num]; 是對se屬性賦值,可以賦值為null,也可以賦值為se類的物件。

report[num]應該是se類的物件,可能已經被其他**例項化了,也有可能沒有(null)

8樓:匿名使用者

se所在的類為re

那麼你在score窗體中例項化一個re物件併為re物件的公共變數se賦值是沒有問題的

9樓:匿名使用者

這樣沒什麼問題啊。re.se=report[num];這個就是給se屬性例項化。

10樓:匿名使用者

record類的修飾符是public吧,全域性的,代表的是整個解決方案可以使用

c# 窗體應用程式中定義的方法,不用例項化,就可以在其他控制元件中直接呼叫?這是為什麼?

11樓:匿名使用者

建議你去看看 static 關鍵字的說明。

靜態方法不必例項化就可以呼叫,否則必須經過例項化才能呼叫。

類有抽象類和非抽象類之分

public class text

{}上面定義了一個類,它叫做類

text text1=new text();

text text2=new text();

上面定義了兩個物件text1和text2,是類text的具體例項,它們叫物件。即text經過例項化得到text1和text2物件。一定要分清類和物件的關係,比如 人 是一個類,而你和我就是人的一個物件。

類還有抽象類

abstract public class people{}上面定義了一個抽象類,它不可以例項化,只能被繼承希望對你有幫助,你之所以不明白為什麼有的要被例項化,有的不需例項化,就是還沒搞清什麼是物件導向的程式設計呢

12樓:布加迪

我知道為什麼了,因為c#中,在方法裡面本來就是可以呼叫方法的,不需要例項化。

在窗體應用程式中,主函式是啟動窗體,而控制元件呼叫自定義方法的本質就是在方法裡呼叫方法。以上。

13樓:匿名使用者

不用例項化就能呼叫的方法,應該是類的靜態方法

要麼就是全域性方法

c#中同一個類中的方法互相呼叫需要將類例項化麼

14樓:匿名使用者

同一名稱空間,不同類可以互相呼叫,不在同一個名稱空間的,引用名稱空間後,也可以呼叫。

不在乎你寫在哪個檔案裡。只要你將它們放在同一個專案中,保證生成的dll裡面有這些類就可以了,或者你載入了這些類的dll。

類之間的真正關連是生成在dll裡的,.cs檔案只是**的載體,就好象你執行一個程式,其實根本不需要源**一樣。

c#怎麼在一個類中呼叫另一個類的變數?

15樓:匿名使用者

(1)如果兩個類沒有繼承關係,存取另一個類中變數的方法如下:

public class a

// 在類b中使用類a中的變數

public class b

}請特別注意「類變數」和「例項變數」的差異!

(2)如果兩個類有繼承關係,存取基類中變數的方法如下public class a

public class b : a

, ", base.y, base.z);    }}

16樓:匿名使用者

在這裡dlist是一個list陣列,陣列存放的物件為datalist,應用舉例如下:

public listdatatabletolist(datatable a)

17樓:匿名使用者

參考如下**:

class b

; // class b只有一個帶引數的建構函式private:

int m_i;};

class a;

b m_b;};

18樓:匿名使用者

c#區分大小寫的。屬性是myname吧?

19樓:匿名使用者

例項化你要引用的類,你的類中屬性要區分大小寫

20樓:匿名使用者

定義為靜態的,在public 後面加上一個static

21樓:匿名使用者

首先在一個類中包含將被呼叫類的標頭檔案或用class宣告被呼叫類資訊,構造一個被呼叫類的物件,就可以呼叫。如:

class one

;class two

22樓:屋有

在另一類中做介面方法

getset

c#中一個類例項化後,那麼其中的類成員要例項化嗎? 10

23樓:艹尼螞

這個問題,你要看你例項化以後裡面的成員是公有的,私有的,內部的,保護的.來分別考慮.

如果是類巢狀類,而類又不是靜態類,那麼自然也需要例項化,此乃基礎..

24樓:匿名使用者

不用。類例項化成一個物件後,內部的非靜態欄位、屬性、事件、方法都是屬於這個物件的。

例項化是通過類的建構函式實現的,可以看到這個函式就是在給物件成員初始化,所以類例項化後的物件就具有了這些成員。

我也沒聽說過欄位、屬性、事件、方法有「例項化」的概念,這個術語本來就是針對類來說的。欄位、屬性、事件、方法如果是抽象的那麼才要在派生類中實現。

25樓:a9國際版and國服

一個類實列後。。。

其實根據c#是用建構函式來構造類實列的原理來說,因為他會自動給類成員賦予預設值(值型別0 引用null)

所以其實類成員只存在賦值不賦值的問題,比如引用型別,你不復制的結果就是為null上面的方法不可以呼叫,但也不能說他沒有價值。。。

我覺得你應該在好好想想。。這個應該不是問題 哈哈

26樓:匿名使用者

不用,類例項化後直接用類物件點就可以了,類成員就會出現!靜態的不需要例項化,直接類點就出來了!私有成員是點不出來的!

27樓:匿名使用者

不要,直接點出來就行了。(這問題也問啊,自己在做的時候試一哈)

28樓:匿名使用者

不需要的前提是其它類成員一定要有無參構造。希望對您有用。

29樓:

不用,c#只有例項化物件,之後就可以找到類裡面的成員,c#沒有例項化類成員

如何在c#的窗體下呼叫另外一個類的方法 20

30樓:匿名使用者

把a類你有復

引用的方法制加static

public class a

}public class b}

31樓:馮韋韋

若你新建的

這個類和該客戶端程式是在同一個專案中,就可以直接新建類,如一樓所說的內:myclass obj = new myclass();

obj.方法容();

若你新建的這個類和該程式是在兩個專案中,就應該先是在程式中先對這個類的dll先新增引用,然後再程式中引用這個類的名稱空間.

32樓:

1 把原來的方法複製出來,新建成類。類的建構函式為public,假設類名為myclass,

2 在程式裡呼叫:

myclass obj = new myclass();

obj.方法();

33樓:大冬子

//你新建的類a

public class a

}//視窗

答類public class form1}

34樓:匿名使用者

都沒看懂你說的什麼...

C中類的建構函式怎麼呼叫這個類的另建構函式

就是 myclass myclass new myclass 這句 在建立物件的時候 它會自己呼叫無引數的建構函式 上邊的同志說的 很對啊! myclass myclass new myclass 這樣應該就可以了!c 中例項化的時候,new關鍵字用於建立物件和呼叫建構函式。呼叫建構函式是什麼意思?...

c 中解構函式在成員函式中的呼叫問題

因為第二種方法你沒有定義拷貝建構函式,所以ab operator int a 執行完之後,返回的是return this,會在記憶體中再次構造一個ab的物件,並且把 this指向的物件按位拷貝給這個物件,建立這個物件的時候,會用到x new int 2 分配一段記憶體。由於有a 3 會再次呼叫按位拷...

c 類中成員函式的問題

1.你這基礎實在薄弱,基本概念都還沒懂 2.下面的void m f1 m m 是對類裡面 static void f1 m m 函式的實現。m m 的意思定義一個m的物件m.也就是這個函式的引數必須是一個m的物件。3.m p 5 q 10 這裡的定義兩個m物件 括號裡的值是傳遞給建構函式的,即呼叫此...