KONU : C Sharp Uygulamalar - C Sharp ( C# ) Sınıf oluşturma ve fields & properties ekleme. Generic List sınıfını kullanarak sınıf nesnelerini listeleme ve saklama. Generic Liste nesne ekleme ve eklenen nesneleri listeleme. C sharp Override Equals ve Override ToString Method larını tekrar yazma.
ETİKETLER: c sharp field - c sharp field declaration - c sharp properties - c sharp field property - c sharp access modifier - c sharp field access modifier - c# access modifier - c# field - c# field nedir - c# fields - c# field and property - csharp class - csharp class örnekleri - csharp class tanımlama - csharp class oluşturma - csharp class kullanımı - csharp class constructor - c sharp sınıf tanımlama - c sharp sınıf oluşturma - c sharp alan tanımlama - Generic List - c sharp generic list - generic list kullanımı
UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OOP_Equals_Override
{
class Program
{
static void Main(string[] args)
{
Siniflar sinif1 = new Siniflar();
sinif1.SinifAd = "Sınıf - 1";
Siniflar sinif2 = sinif1;
Siniflar sinif3 = sinif2;
Console.WriteLine("\n\n" + sinif1 + " " + sinif3 + " e eşit mi ?");
if (sinif3.Equals(sinif1))
{
Console.WriteLine("bu iki referans noktası aynı örneği(instance) gösteriyor.\n\n");
}
else
{
Console.WriteLine("bu iki referans noktası aynı örneği(instance) göstermiyor.\n\n");
}
//sinif2 ve sinif3 nesnelerinin yeni örnekleri oluşturma
//simdi bu 3 sınıfında id si bibirinden farklı oldu
sinif2 = new Siniflar();
sinif2.SinifAd = "Sınıf - 2";
sinif3 = new Siniflar();
sinif3.SinifAd = "Sınıf - 3";
//Yeniden sinif1, sinif2 ve sinif3 nesnelerini eşit mi diye kontrol edelim
Console.WriteLine("\n\n" + sinif1 + " "+ sinif2 + " e eşit mi ?");
if (sinif2.Equals(sinif1))
{
Console.WriteLine("\n\nbu iki referans noktası aynı örneği(instance) gösteriyor.\n\n");
}
else
{
Console.WriteLine("\n\nbu iki referans noktası aynı örneği(instance) göstermiyor.\n\n");
}
Console.WriteLine("\n\n" + sinif1 + " " + sinif3 + " e eşit mi ?");
if (sinif3.Equals(sinif1))
{
Console.WriteLine("\n\nbu iki referans noktası aynı örneği(instance) gösteriyor.\n\n");
}
else
{
Console.WriteLine("\n\nbu iki referans noktası aynı örneği(instance) göstermiyor.\n\n");
}
//Jenerik bir sınıflar listesi oluşturma
List Siniflar = new List();
//oluşturulmuş sinid nesnelerini jenerik liste ekleme
Siniflar.Add(sinif1);
Siniflar.Add(sinif2);
Siniflar.Add(sinif3);
//jenerik listeyi konsol ekranına yaz (id değerleri ile birlikte)
for (int i = 0; i < Siniflar.Count; i++)
{
Console.WriteLine(Siniflar[i].Id + " : " + Siniflar[i].SinifAd);
}
Console.ReadKey();
}
}
class Siniflar
{
// id ve sinifAd isminde iki adet alan (field) tanımlayalım
private string id;
private string sinifAd;
// Id özelliğini (property) tanımlayalım.
public string Id
{
get
{
return id;
}
set
{
id = value;
}
}
//SinifAd özellliğini (property) tanımlayalım
public string SinifAd
{
get
{
return sinifAd;
}
set
{
sinifAd = value;
}
}
//Contructor Tanımlayalım. Bir örnek alındığında tek bir id atayalım
public Siniflar()
{
//Constructor - Global unique identifier
this.Id = Guid.NewGuid().ToString();
this.sinifAd = "Sınıf - ?";
}
//Equals metodunu yeniden yazma, bu sınıf için
public override bool Equals(object obj)
{
//Bu instance ile karşılaştırılacak nesne
Siniflar sinif = obj as Siniflar;
//karşılaştırılan nesnebin id değeri bu sınıftan üremiş
//olan nesnenin id si ile aynı ise "True" değerini dön
if (sinif == null || sinif.Id != this.Id)
{
return false;
}
return true;
}
//ToString metodunu yeniden oluşturacağım. Bunun için override terimini kullanacağım
public override string ToString()
{
return this.sinifAd;
}
}
}
Hiç yorum yok :
Yorum Gönder