c利用委託呼叫類中的非靜態方法怎樣才能讓方法中的內容輸出

2021-04-01 08:04:51 字數 2267 閱讀 6769

1樓:匿名使用者

在c#中,委託是一種型別,屬於引用型別,委託的關鍵字是delegate,委託的定義和類的定義一樣,所以凡是能定義類的地方也是可以定義委託的,public delegate void mydelegate();這個定義了一個無返回值,無參的委託型別,那麼下面來通過委託編寫一段**:

例項 1 : 委託的基本組成

class program

public static void mymethod()

}上述的**是可以直接進行執行的,在上述**中,首先宣告瞭一個委託 mydelegate, 它是無返回值,無引數的 ,同時還建立了一個方法mymethod(), 這個方法也是 無返回值,無引數的。

靜態方法和例項方法的區別 「靜態方法都是通過關鍵字static來定義的,靜態方法不需要例項這個物件就可以通過類名來訪問這個物件。在靜態方法中不能直接訪問類中的非靜態成員。而用例項方法則需要通過具體的例項物件來呼叫,並且可以訪問例項物件中的任何成員」, 來通過一個例項來了解

public delegate void mypersondelegate(string name);

static void main(string args)

class person

}class personintance

}在上述**中,首先定義了一個委託mypersondelegate,它是無返回值,並且需要一個string型別的引數型別(在這裡說一點,委託是可以進行協變和逆變的,具體請參考.***可變性解析(協變和逆變)),然後分別定義了兩個類person和personinstance 其中person中宣告瞭一個getpersonnam的靜態方法,personintance類中宣告瞭一個getpersonname的例項方法,在主函式main中,分別進行呼叫.在執行的時候,會發現委託的例項後跟一個引數,這個引數其實就是方法的引數,因為所定義的委託要求的是一個執行一個無返回值,有一個string型別的引數的方法

2樓:陽光的雷咩咩

你把委託、普通類、事件混淆了,普通委託一般不用+=形式的,還有你的各種名稱可以改進下,一看都是max,仔細看才知道有大小寫等等區別。

3樓:匿名使用者

簡單來說你只是宣告瞭委託並搭載了幾個方法,根本就沒有執行,所以當然不會有結果,簡單的呼叫比如

max = new max(md.max);//為啥不顯示輸出結果呢?

max += new max(md.min);//為啥不顯示輸出結果呢?

max.invoke();//執行所有搭載方法

當然也可以更簡單比如

max = new max(md.max);//為啥不顯示輸出結果呢?

max();

4樓:放星星的

倒數第三行加上max();

多播委託 這個委託指向了兩個函式,執行委託直接去全執行了,你沒執行他們為什麼輸出??

5樓:匿名使用者

不執行怎麼輸出啊,笨

c#如何呼叫同一類下其它非靜態方法中的引數,或者直接引用引數值 5

6樓:彎冬掰不直

這種情況是沒法呼叫的,不同的變數都有它的作用域,方法引數的作用版域只在方法的權

內部。如果想要在其他方法中引用其他方法的引數,可以在類內新增一個變數來儲存這個值,然後在另一個方法中引用這個值。

static void main(string args)private string param;

public void fun1(string param)public void fun2()

c#中的同一個類非靜態方法為什麼可以直接呼叫其他非靜態方法而不需要new一下例項?

7樓:碧野花香四溢

你說的前提是調非靜態方法,那這個方法必須屬於一個具體的物件,假設main方法調,不論這個main方法是在同一個類裡,還是另一個類裡,呼叫前都需要new一次,第一次用物件名來調,第二次還是用物件名來調 ,不用再new。如果重複new,那是脫了褲子打屁,不是和前面的new一樣嗎,何必重複寫一句!!如果是調靜態方法,它不屬於物件,又分兩種情況來呼叫:

第一種,在同一個類裡直接寫:方法名()就可以了,前面不用加類名或物件名;第二種,main在b類裡,呼叫a類的方法,用類名來調啊,要寫成:a類名.

方法名()。如果你連靜態和非靜態都不懂,我寫這麼多相當於對牛彈琴了!

8樓:匿名使用者

你覺得左手去呼叫右手, 需要重新創造一個人再去呼叫右手嗎?

在js中怎麼呼叫java類靜態方法呼叫方法

你這裡用的應該是form 表單提交的吧 你的action寫跳轉的網頁就可以了啊 如果想在當前頁面接收到跳轉頁面方法的返回值 可以用session儲存一下 在當前頁面get一下就好了 如何在js中呼叫class的方法呼叫 function fun 那麼類版中其他函式都可以權直接通過func1 的形式呼...

c中父類能呼叫子類的方法嗎

其實也不一定啊,父類可以通過例項呼叫子類繼承的父類的相應方法啊。舉例 都是public class father class son father 然後執行這段 fatherf newfather sons new son f.refer s console.writeline f.writesom...

c中怎麼呼叫自己建的類啊

你可以當前專案管理器中的引用中新增一個你自己建的類的一個引用 然後再 中先要using 類的別名。在座椅個例項 這樣就可以呼叫了 情況一,同一個名稱空間下 namespace ns1 public class b 情況二,不同的名稱空間下 namespace ns1 using ns1 namesp...