首頁 > 後端開發 > C#.Net教程 > C# 物件傳送者

C# 物件傳送者

WBOY
發布: 2024-09-03 15:06:14
原創
380 人瀏覽過

C# 物件傳送者是參數之一,它是用於建立物件參考的參數,該物件參考是為用於回應處理程序以映射正確物件的事件引發的,但在靜態參數的情況下或事件,在EventArgs 類別的幫助下,該值將為null,我們可以將參數傳遞給方法,因此EventArgs 類別及其構造函數用於建立這些類別來自預設框架的對象,以便它可以在任何地方使用使用者對應用程序的需求。

文法:         

在C#中,物件是應用程式的根類別和父類別;當我們想要利用特定類別的方法、關鍵字和變數來為特定類別建立物件時,就可以實現。

using System;
using System. Web;
Access modifiers class class name {
Access modifiers return type function_name(object reference name(sender), EventArgs reference name)
{
--some C# code logics depends upon the user requirement-----
}
}
登入後複製

以上程式碼是從一個地方到另一個地方利用和存取類別物件的基本語法。它看起來像是 EventArgs 和處理創建的物件的處理程序。

物件傳送器在 C# 中如何運作?

在通用物件中,sender 是 C# 語言中的參數之一,並且它用於建立物件的實例,該實例由應用程式上的特定事件引發。此事件是使用主要處理並負責創建物件的事件處理程序機制來處理的。但當我們使用靜態、動態等關鍵字時,如果使用靜態事件,參數值會有所不同,參數值永遠為空。事件處理程序是最常用於根​​據客戶端請求執行物件的方法之一;然後,回應將針對應用程式上將發生的特定事件引發。

由於物件發送者引用,事件將被觸發並執行,因此發送者是可用於啟動事件的主要控制項之一。 UI中的按鈕是事件之一,主要用於在後端執行使用者操作和動作。一旦我們點擊發送按鈕,就會觸發事件,並根據用戶需求進行操作;客戶端的資料將從前端和後端進行驗證。

範例

以下是 C# 物件傳送者的不同範例:

範例#1

using System;
public delegate void demo(object snd, eventargs er);
public delegate void demo1(object snd, eventargs er);
public delegate void demo2(object snd, eventargs er);
class examp
{
public const string first = "Welcome To My Domain";
public void meth1(object snd, eventargs er)
{
Console.WriteLine("Thank you user your first example program is started ", er.first);
}
public void meth2(object snd, eventargs er)
{
Console.WriteLine("Your code is currently debugged and in-progress", er.first);
}
public void meth3(object snd, eventargs er)
{
Console.WriteLine("Your code is successfully completed", er.first);
}
public examp(examp1 exm)
{
demo d1 = new demo(meth1);
demo1 d2 = new demo1(meth2);
demo2 d3 = new demo2(meth3);
exm.vars1 += d1;
exm.vars2 += d2;
exm.vars3 += d3;
}
}
class examp1
{
public event demo vars1;
public event demo1 vars2;
public event demo2 vars3;
public void third(eventargs er)
{
if (vars1 != null)
{
vars1(this, er);
}
}
public void four(eventargs er)
{
if (vars2 != null)
{
vars2(this, er);
}
}
public void five(eventargs er)
{
if (vars3 != null)
{
vars3(this, er);
}
}
}
public class eventargs : EventArgs
{
public string first;
}
public class second
{
private void seven(object snd, EventArgs er)
{
Console.WriteLine("Welcome To My Domain, please add your details");
}
public static void Main()
{
examp1 exm = new examp1();
examp exam = new examp(exm);
second s= new second();
eventargs e1 = new eventargs();
eventargs e2 = new eventargs();
e1.first = "Your first event is started and triggered";
e2.first = "Your second event is started and triggered";
s.seven("Welcome To My Domain, Thank you users ",e1);
exm.third(e1);
exm.four(e2);
}
}
登入後複製

輸出:

C# 物件傳送者

在第一個範例中,我們使用相同的物件傳送器和事件處理程序機制來建立和傳送物件引用,並使用預設方法。我們可以建立兩個不同的事件,並透過使用它們的實例,我們可以呼叫這些事件並建立在輸出控制台上列印的單獨實例。

範例#2

using System;
using System.Collections;
public delegate void EventHandler(object snd, EventArgs er);
public class first: ArrayList
{
public event EventHandler vars;
public virtual void OnChanged(EventArgs er)
{
if (vars != null) vars(this, er);
Console.WriteLine("Thanks for your input and your values are validated");
}
public override int Add(Object ob)
{
int fr = base.Add(ob);
OnChanged(EventArgs.Empty);
Console.WriteLine("Your input is added and checking with our backend validationonce completed will get back to you.");
return fr;
}
public override void Clear()
{
base.Clear();
OnChanged(EventArgs.Empty);
Console.WriteLine("Thanks for your second Example your input is validated and cleaned by the browser end");
}
public override object this[int ind]
{
set
{
base[ind] = value;
OnChanged(EventArgs.Empty);
}
}
static void Main(string[] args)
{
first fr = new first();
Console.WriteLine(fr.Add(736));
Console.WriteLine("Thanks for your second Example");
}
}
登入後複製

輸出:

C# 物件傳送者

在第二個範例中,我們使用了一些額外的預設方法,例如OnChanged()、Add()、Clear();這些是預先定義的方法,用於在建立物件時清理垃圾收集並分配內存,如果我們想透過使用預設方法clear()、remove()刪除不需要的引用,我們可以刪除它。

範例 #3

using System;
public class examp1
{
public event EventHandler evnts
{
add
{
Console.WriteLine("Welcome To My DOmain Your third Example Started");
}
remove
{
Console.WriteLine("Please provide your inputs");
}
}
}
public class examp
{
public void demo()
{
examp1 emp = new examp1();
emp.evnts += third;
emp.evnts -= third;
}
public void third(object snd, EventArgs er)
{
}
public static void Main(string[] args)
{
examp examp = new examp();
examp.demo();
Console.ReadKey();
Console.WriteLine("Your examples are started and executed successfully");
}
}
登入後複製

輸出:

C# 物件傳送者

在最後一個範例中,我們使用事件處理程序類別及其預設關鍵字(例如 add 和 remove)來新增和刪除記憶體中的值。這些值由每個類別實例及其方法計算和呼叫。如果該方法有參數,它將在其實例的幫助下呼叫並傳遞它。

物件發送者的規則和規定

  1. 物件發送者必須包含帶有實例的EventArgs;然後,只有物件發送者將執行其使用者活動。
  2. 在大型企業應用程式中,物件建立和分配將花費更多時間,並且發送它們的參考也需要更長的時間。
  3. 透過使用同步,避免了進程執行緒中的死鎖。

結論

C# 對於每組元素都有如此多的預定義關鍵字、方法及其屬性,它有自己的語法和規則,可以更複雜地利用程式碼,並避免重複和程式碼冗餘。與該物件一樣,發送者也是將其傳遞給方法以供其類別引用和使用的參數之一。

以上是C# 物件傳送者的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板