Komposisi C#

WBOY
Lepaskan: 2024-09-03 15:04:37
asal
697 orang telah melayarinya

Artikel berikut menyediakan garis besar untuk Komposisi C#. Terdapat dua jenis perhubungan di antara kelas dalam C#. Jenis perhubungan pertama dipanggil "adalah perhubungan," dan ia menggunakan mekanisme pewarisan. Jenis hubungan kedua ialah hubungan antara dua kelas, dan ia mempunyai dua subjenis. Jenis pertama dipanggil "mempunyai hubungan."

Dalam jenis perhubungan ini, satu atau lebih daripada satu objek kelas berbeza diisytiharkan dalam kelas berkaitan. Di sini datang dua lagi bahagian, iaitu pengagregatan dan gubahan. Dalam pengagregatan, objek bersarang boleh wujud secara bebas dalam kelas tanpa menjadi sebahagian daripada kelas. Sebaliknya, dalam komposisi, objek bersarang atau objek bersarang tunggal menambah kelas, yang menjadikan kelas tidak dapat dibayangkan tanpa kewujudannya.

Sintaks Komposisi dalam C#

Diberikan di bawah ialah sintaks yang disebut:

class Training
{
// class body
}
public class Course
{
Project project = new Project();
// body
}
Salin selepas log masuk

Kerja Komposisi dalam C#

  • Komposisi dalam C# ialah cara mencipta hubungan antara dua kelas yang mana satu atau lebih daripada satu objek bersarang adalah sebahagian daripada kelas yang berkaitan, dan kewujudan logik kelas menjadi mustahil tanpa objek bersarang.
  • Sebagai contoh, jika kita menganggap kelas yang dipanggil Kereta, maka kelas itu sepatutnya mempunyai satu contoh kelas "Enjin." Selain itu, ia juga sepatutnya mempunyai empat kejadian lain dalam kelas "Wheel."
  • Sekarang, jika kita menghapuskan mana-mana kejadian ini, maka Kereta itu tidak akan berfungsi.

Contoh Komposisi C#

Diberikan di bawah adalah contoh Komposisi C#:

Contoh #1

Jika kelas latihan dipertimbangkan, yang menerangkan dua kursus. Kini, kursus digunakan untuk menerangkan kelas kursus. Oleh itu, kelas latihan tidak boleh wujud tanpa contoh dua kursus kerana kedua-dua kejadian ini adalah sebahagian daripada kelas kursus. Selain itu, kedua-dua contoh kelas kursus ini juga merupakan sebahagian daripada kelas latihan.

Kod:

using System;
using static System.Console;
namespace EDUCBA
{
class Course
{
public double M;
public double A;
}
class Training
{
public Course course1 = null;
public Course course2 = null;
}
class Career
{
public Course[] courses;
public Training[] trainings;
public Career()
{
courses = null;
trainings = null;
}
public void Print()
{
WriteLine(" Courses Data is represented below:");
for (int b = 1; b< courses.Length; b++)
{
WriteLine("\n M = {0}, A = {1}", courses[b].M, courses[b].A);
}
WriteLine("\n Trainings Data is represented below:");
for (int b=1; b<trainings.Length; b++)
{
WriteLine("\n course1.M = {0}, course1.A = {1}", trainings[b].course1.M, trainings[b].course1.A);
WriteLine("\n course2.M = {0}, course2.A = {1}", trainings[b].course2.M, trainings[b].course2.A);
}
}
}
class Code
{
static void Main(string[] args)
{
Career O = new Career();
O.courses = new Course[9];
for (int b = 1; b < O.courses.Length; b++)
{
O.courses[b] = new Course();
O.courses[b].M = b * b;
O.courses[b].M = b * b * b;
}
O.trainings = new Training[5];
for (int b = 1; b < O.trainings.Length; b++)
{
O.trainings[b] = new Training();
O.trainings[b].course1 = new Course();
O.trainings[b].course2 = new Course();
O.trainings[b].course1.M = b;
O.trainings[b].course1.A = b * 4;
O.trainings[b].course2.M = b * 5;
O.trainings[b].course2.A = b * b;
}
O.Print();
}
}
}
Salin selepas log masuk

Output:

Komposisi C#

Contoh #2

Dalam contoh ini, kedua-dua kelas yang dibuat adalah kelas biasa; walau bagaimanapun, kelas kursus menggunakan contoh daripada kelas projek di dalamnya. Ini adalah cara yang sama di mana satu fungsi dipanggil di dalam yang lain. Menggunakan warisan, kita boleh mempunyai akses kepada setiap dan segala-galanya daripada kelas Projek. Walau bagaimanapun, menggunakan komposisi, hanya kod yang ditentukan oleh kami boleh diakses. Di sini, kita boleh mengakses kelas Projek secara tidak langsung.

Kod:

using System;
namespace EDUCBA
{
class Training
{
static void Main(string[] args)
{
Course courses = new Course();
courses.Bought();
Console.ReadLine();
}
}
public class Project
{
public void Log(string aboutus)
{
Console.WriteLine(aboutus);
}
}
public class Course
{
Project project = new Project();
public void Bought()
{
project.Log("\n If you want to upskill your career. \n If you want to do something out of the box. \n If you have passion to explore new advanced technologies. \n If you want to be best. \n We at EDUCBA are here to help. \n Feel free to reach us on +91-8800880140 / +91-7738666252. \n Visit our website www.educba.com to know more......");
}
}
}
Salin selepas log masuk

Output:

Komposisi C#

Contoh #3

Dalam contoh ini, struktur reka bentuk komposit diterangkan. Ia membantu dalam memahami kelas yang digunakan untuk gubahan dan peranan kelas tersebut. Selain itu, ia juga menerangkan bagaimana unsur-unsur corak berkaitan antara satu sama lain.

Kod:

using System;
using System.Collections.Generic;
namespace EDUCBA
{
abstract class Training
{
public Training() { }
public abstract string Project();
public virtual void Add(Training training)
{
throw new NotImplementedException();
}
public virtual void Remove(Training training)
{
throw new NotImplementedException();
}
public virtual bool IsCourse()
{
return true;
}
}
class DataScience : Training
{
public override string Project()
{
return "DataScience";
}
public override bool IsCourse()
{
return false;
}
}
class Course : Training
{
protected List<Training> _children = new List<Training>();
public override void Add(Training training)
{
this._children.Add(training);
}
public override void Remove(Training training)
{
this._children.Remove(training);
}
public override string Project()
{
int m = 1;
string result = "Dream Career(";
foreach (Training training in this._children)
{
result += training.Project();
if (m != this._children.Count + 2)
{
result += "-";
}
m--;
}
return result + ")";
}
}
class Input
{
public void InputCode(Training data_analysis)
{
Console.WriteLine($"OUTPUT: \n {data_analysis.Project()}\n");
}
public void InputCode2(Training training1, Training training2)
{
if (training1.IsCourse())
{
training1.Add(training2);
}
Console.WriteLine($"OUTPUT: \n {training1.Project()}");
}
}
class Program
{
static void Main(string[] args)
{
Input client = new Input();
DataScience data_analysis = new DataScience();
Console.WriteLine("INPUT: \n Best Course to Upgrade Career:");
client.InputCode(data_analysis);
Course vr = new Course();
Course career1 = new Course();
career1.Add(new DataScience());
career1.Add(new DataScience());
Course career2 = new Course();
career2.Add(new DataScience());
vr.Add(career1);
vr.Add(career2);
Console.WriteLine("\nINPUT: \n Trendy Dream Career Right Now:");
client.InputCode(vr);
Console.Write("\nINPUT: Lets Upgrade and start your dream career jouney: \n");
client.InputCode2(vr, data_analysis);
}
}
}
Salin selepas log masuk

Output:

Komposisi C#

Kesimpulan

Berdasarkan artikel di atas, kami memahami konsep gubahan dalam C#. Kami telah melalui beberapa contoh untuk memahami aplikasi komposisi dalam pengekodan C#.

Atas ialah kandungan terperinci Komposisi C#. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!