1樓:
事件是委託被封裝後的狀態 在外部呼叫的時候只能被限制了+=和-=運算子
不能作為一個右值引數被使用
acceptstring("你好");這種寫法也是不科學的 你應該專門寫一個方法去觸發事件 比如:
protected void onacceptstring(string str)
}外部呼叫時直接使用onacceptstring("你好") 這樣可以達到一種安全呼叫的目的
不直接使用事件為引數就方便多了 後面就是你想要的答案:
外部呼叫時直接 doinvoke(()=>); 即可達到目的 (當然如果在類內部還可以直接呼叫事件)
2樓:鳶梨的小布丁
不能將表示式作為一個引數傳遞進去,只能在方法裡面預製一些表示式,然後在傳遞引數的時候,指定引數傳遞到哪個表示式。
舉例 dim a as integer =1public sub b(byval i as integer ,byval j as integer)
select case i
case 1
j=j+3
messagebox.show(j)
case 2
j=j*3
messagebox.show(j)
end select
end sub
這樣的話,當呼叫b的時候
b(1,i)時,彈出的視窗顯示的是4
b(2,i)時,淡出的視窗顯示的是3
c#怎麼將表示式作為引數傳遞給一個方法
3樓:匿名使用者
你並不能將表示式作為一個引數傳遞進去,只能在方法裡面預製一些表示式,然後在傳遞引數的時候,指定引數傳遞到哪個表示式
舉例 dim a as integer =1public sub b(byval i as integer ,byval j as integer)
select case i
case 1
j=j+3
messagebox.show(j)
case 2
j=j*3
messagebox.show(j)
end select
end sub
這樣的話,當呼叫b的時候
b(1,i)時,彈出的視窗顯示的是4
b(2,i)時,淡出的視窗顯示的是3
4樓:
雖然不太清楚你想做什麼 不過 可以用匿名委託才傳遞表示式public bool checktry(funcfunc, string s)
類似這樣的方式來呼叫
var a = new func(s => );
checktry(a,"11");
5樓:匿名使用者
定義委託,用委託才可以把方法當作引數傳遞
c#在click事件中怎麼傳遞一個自定義的引數,舉個例子
6樓:匿名使用者
pb[i].tabindex = i.tostring();
public override void pb_click(object sender,eventargs e)
這是baiwinform
借用du
控制元件zhi的屬性
dao傳版值。權
7樓:匿名使用者
menuitemfolder.click += (sender, e) => yourmethod(owner, datatype);
public void yourmethod(owner, datatype){}
[100分]c# 如何向事件的**函式中傳遞引數?
8樓:
click事件使用者無法自主呼叫(都是由系統呼叫的),即便能傳遞引數,你又如何傳進去呢?
routedeventhandler委託已經第二個引數是事件引數,如果你需要自定義事件,可以用eventhandler或擴充套件eventhandler重新定義事件,
那要怎樣取消匿名函式的訂閱呢?
匿名方法無法取消訂閱,如果你需要取消訂閱的功能,使用命名方法,
9樓:
需要明白的概念是vc中的**函式在c#中是用委託的方式實現,兩者都是呼叫函式的規範,表示了呼叫本函式會有什麼引數和返回值,事件是用委託簽名的函式,因為事件就有與簽名函式一樣的引數和返回值,事件有windows時間和自定義事件,其根本解決的問題就是當系統或物件內部產生訊息後,需要由外部進行處理而產生的外部呼叫機制,明白了原理,你才能明白他的運作機制,就自然明白他為什麼這樣,為什麼不能那樣。。。
10樓:
如果單純想要傳遞引數,不需要固定在這個層面的方法。
你可以再定義一個方法public void mybtn_click(object sender, routedeventargs e,string mystr)
然後再在btn_click 方法中呼叫自己的方法。
mybtn_click(sender, e,mystr);
如果你做的基類,那就要繼承eventargs類,自定義一個引數型別。
11樓:匿名使用者
個人想法,你的btn不是孤立的,它是作為一個窗體裡的物件存在的
那麼你是不是可以通過btn.form之類的方法獲取到這個窗體,從而獲取到窗體裡的相應屬性之類
如果不是公共的,可以通過反射來實現
routedeventhandler事件的引數是已經固定了的,就是object sender, routedeventargs e
所以你無法增加你需要的引數,
不過這個sender,就是觸發事件的物件,也就是那個btn,你可以變通一下,給那個btn的某些屬性賦值成你希望傳遞的引數,比如btn.text = 引數
然後在:btn_click方法裡,把sender轉換為btn物件,並獲取text屬性
12樓:你是誰
1..net的事件驅動設計其實體現了觀察者設計模式。而觀察者模式又有pull和push兩種,.net的事件驅動結合了這兩種方式。
(1).被訂閱者通過將資訊封裝到xxeventargs將資訊推送給訂閱者
(2).訂閱者可以主動從sender讀取資訊。
2.在樓主舉的情形下一般是不需要傳遞額外的引數的,因為頁面或窗體的資訊都可以直接或者通過sender來得到。
3.如果是自己想設計這樣的一個事件訂閱,可以考慮將要作為引數傳遞的資訊封裝到xxeventargs裡
13樓:匿名使用者
c# 裡面這個東西一般指某個委託.其實也可以是介面.
delegate void workdone();
void working(workdone callback)void workdonehandler()void do()
也就是相當把某個方法(workdonehandler())當作引數傳遞給另外一個方法(working(workdone callback)).
這樣做的好處在於,可以動態的指定執行哪個方法.
比如在do()方法中,我們指定的callback 是workdonehandler 當然也可以是其它匹配的方法. 而working()方法 更本不需要知道自己最後執行的是哪個handler.
14樓:休平凡
btn_click (null,null)
15樓:匿名使用者
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.text;
using system.windows.forms;
namespace windowsformdelegate
public delegate string getadvancequerysqlhandler(string foreignkey);
public event getadvancequerysqlhandler getadvancequeryevent;
private delegate void myhandler();
private event myhandler myevent;
private string getadvancequerya(string foreignkey)
private string getadvancequeryb(string foreignkey)
private void mymethod1()
private void mymethod2()
private void button1_click(object sender, eventargs e)
private void button2_click(object sender, eventargs e)
string sql = string.empty;
if (getadvancequeryevent != null)
}messagebox.show(sql);}}}
c# 事件傳遞
16樓:陽光的雷咩咩
a需要定義相應的事件來傳遞b的事件
17樓:射手小小王
form 直接註冊類庫b的事件
c# 控制元件如何當成引數傳給方法、 並且在方法裡面使用它?
18樓:斯內科
public static void textboxclearall(textbox tb) 設立一個引數 為textbox型別
改成public static void textboxclearall(textbox tb) 設立一個引數 為textbox型別
關於逗號表示式的問題,C語言逗號表示式
x 4,y 11 第三行和第四行都是逗號表示式,但是有區別 第三行中x a 1是逗號表示式的第一個式子,b 6是第二個式子 所以x a 1 4 第四行中的a 1和b 6組成逗號表示式,逗號表示式的值付給y,所以b 6等於11付給y。我想可能是這樣 x 4,y 11 逗號好像是最低階的,那x a 1 ...
寫出下列變化的文字表示式或化學符號表示式,並註明反應型別(化
抄1 硫在空氣中燃燒生襲成二氧化硫,屬於化合反應,文字表示式為 硫 氧氣點燃 二氧化硫 化合反應 2 電解水生成氫氣和氧氣,屬於分解反應,文字表示式為 水通電氫氣 氧氣 分解反應 3 過氧化氫在二氧化錳的催化作用下生成水和氧氣,屬於分解反應,文字表示式為 過氧化氫二氧化錳 水 氧氣 分解反應 寫出下...
c中,如何通過正規表示式(或其他方法)獲取字串中數字
from match m in regex.matches 北京天安門到人民大會堂向東走500.9434324米,在第二個路口向東走789.3434324324米 d d select math.round double.parse m.value 1 toarray 擷取字串中數字型別的自定義函式...