C# pengirim objek

WBOY
Lepaskan: 2024-09-03 15:06:14
asal
363 orang telah melayarinya

Penghantar Objek C# ialah salah satu hujah, dan ia adalah parameter untuk mencipta rujukan objek yang telah dibangkitkan untuk peristiwa yang digunakan untuk bertindak balas pengendali untuk memetakan objek yang betul tetapi dalam kes parameter statik atau peristiwa, nilainya akan menjadi batal dengan bantuan kelas EventArgs kita boleh menghantar parameter kepada kaedah, jadi kelas EventArgs dan pembinanya digunakan untuk mencipta objek kelas ini datang daripada rangka kerja lalai supaya ia digunakan di mana sahaja keperluan pengguna pada aplikasi.

Sintaks:         

Dalam C#, objek ialah akar dan kelas induk bagi aplikasi; apabila kita ingin menggunakan kaedah kelas tertentu, kata kunci dan pembolehubah untuk mencipta objek bagi kelas tertentu, ia akan dicapai.

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-----
}
}
Salin selepas log masuk

Kod di atas ialah sintaks asas untuk menggunakan dan mengakses objek kelas dari satu tempat ke tempat lain. Nampaknya EventArgs dan pengendali untuk mengendalikan objek yang dicipta.

Bagaimanakah penghantar objek berfungsi dalam C#?

Dalam objek umum, pengirim ialah salah satu parameter dalam bahasa C#, dan juga, ia digunakan untuk mencipta contoh objek, yang dibangkitkan oleh peristiwa khusus pada aplikasi. Acara itu dikendalikan menggunakan mekanisme Eventhandler yang kebanyakannya dikendalikan dan bertanggungjawab untuk mencipta objek. Tetapi apabila kami menggunakan beberapa kata kunci seperti statik, dinamik, nilai berbeza antara satu sama lain jika kami menggunakan peristiwa statik, nilai parameter sentiasa batal. Pengendali acara adalah salah satu kaedah yang kebanyakannya boleh digunakan untuk melaksanakan objek berdasarkan permintaan pelanggan; kemudian, respons akan dilemparkan pada peristiwa khusus yang akan berlaku pada aplikasi.

Disebabkan rujukan penghantar objek, acara akan dicetuskan dan dilakukan, jadi penghantar adalah salah satu kawalan utama yang boleh digunakan untuk mengaktifkan acara. Butang Dalam UI ialah salah satu acara dan kebanyakannya digunakan untuk melaksanakan operasi dan tindakan pengguna pada bahagian belakang. Sebaik sahaja kami mengklik butang penghantar, acara akan dicetuskan, dan operasi dilakukan berdasarkan keperluan pengguna; data pelanggan akan disahkan dari kedua-dua bahagian hadapan dan belakang.

Contoh

Di bawah ialah contoh berbeza penghantar objek C#:

Contoh #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);
}
}
Salin selepas log masuk

Output:

C# pengirim objek

Dalam contoh pertama, kami menggunakan mekanisme penghantar objek dan pengendali peristiwa yang sama untuk mencipta dan menghantar rujukan objek dan digunakan dengan kaedah lalai. Kita boleh mencipta dua peristiwa berbeza dan dengan menggunakan contohnya, kita boleh memanggil peristiwa ini dan mencipta tika berasingan yang dicetak pada konsol output.

Contoh #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");
}
}
Salin selepas log masuk

Output:

C# pengirim objek

Dalam contoh kedua, kami menggunakan beberapa kaedah lalai tambahan seperti OnChanged(), Add(), Clear(); ini ialah kaedah yang telah ditetapkan untuk membersihkan kutipan sampah setiap kali objek dicipta dan memperuntukkan memori jika kita ingin mengalih keluar rujukan yang tidak diingini dengan menggunakan kaedah lalai clear(), remove() kita boleh mengeluarkannya.

Contoh #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");
}
}
Salin selepas log masuk

Output:

C# pengirim objek

Dalam contoh terakhir, kami menggunakan kelas pengendali acara dan kata kunci lalainya seperti tambah dan alih keluar untuk menambah dan mengalih keluar nilai daripada memori. Nilai ini dikira dan dipanggil oleh setiap contoh kelas dan kaedahnya. Jika kaedah mempunyai parameter, kaedah itu akan memanggil dan menghantarnya dengan bantuan contoh mereka.

Peraturan dan Peraturan untuk penghantar objek

  1. Penghantar objek mesti mengandungi EventArgs dengan kejadian; maka, hanya penghantar objek akan dilakukan dengan aktiviti pengguna mereka.
  2. Dalam aplikasi perusahaan Besar, penciptaan dan peruntukan objek akan mengambil lebih banyak masa, dan juga menghantar rujukan mereka juga mengambil masa yang lebih lama.
  3. Dengan menggunakan penyegerakan, ia mengelakkan kebuntuan dalam urutan proses.

Kesimpulan

C# mempunyai begitu banyak kata kunci yang dipratentukan, kaedah dan atributnya untuk setiap set elemen, ia mempunyai sintaks dan peraturan tersendiri untuk menggunakan kod dalam cara yang lebih canggih dan mengelakkan pendua, redundansi kod. Seperti objek itu, penghantar juga merupakan salah satu parameter yang menghantarnya kepada kaedah untuk rujukan dan kegunaan kelas mereka.

Atas ialah kandungan terperinci C# pengirim objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan