C# get ve sette istediğim sonucu alamıyorum

hayl0s

Decapat
Katılım
17 Eylül 2021
Mesajlar
398
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Selam, kodları aşağıda veriyorum. Amacım yaşı 18'den büyükse direkt olarak konsola sonucu yazdırmak. Eğer yaş 18'den küçükse konsolda "yaşı: 18'den küçük olamaz" uyarısı vermek. Fakat şu şekilde bir çıktı alıyorum:

1681743477887.png


Amacım üstte yer alan metni "yaşı: 18'den küçük olamaz" şeklinde yazdırmak fakat bunu yapamadım.

C#:
using System;

namespace ConsoleApp2.
{
 internal class Ogrenci.
 {
 private string ad;
 private string soyad;
 private string alan;
 private int yas;

 public string ADI.
 {
 get { return ad; }
 set { ad = value; }
 }

 public string SOYADI.
 {
 get { return soyad; }
 set { soyad = value; }
 }

 public string ALANI.
 {
 get { return alan; }
 set { alan = value; }
 }
 public int YASI.
 {
 get { return yas; }
 set.
 {
 if (value < 18)
 {
 Console.WriteLine("Yaşınız 18'den küçük olamaz!");
 }
 else.
 {
 yas = value;
 }
 }
 }
 }
}
using ConsoleApp2;
using System.Reflection;
using System;

class Program.
{
 static void Main(string[] args)
 {
 Ogrenci ogr = new Ogrenci();
 ogr.ADI = "Metin";
 ogr.SOYADI = "Katral";
 ogr.ALANI = "Bilgisayar";
 ogr.YASI = 16;

 Console.WriteLine("Adı: " + ogr.ADI);
 Console.WriteLine("Soyadı: " + ogr.SOYADI);
 Console.WriteLine("Alanı: " + ogr.ALANI);
 Console.WriteLine("Yaşı: " + ogr.YASI);

 Console.Read();
 }
}
 

Dosya Ekleri

  • 1681743325253.png
    1681743325253.png
    5 KB · Görüntüleme: 22
Yaşın 18 olma doğrulaması isim vs. yazdıktan sonra soruyorsunuz. Yani ilk isimler vs alıyor sonra yaş doğrulanıyor onun yerine şöyle yapabilirsiniz
Kod:
using System;

namespace ConsoleApp2
{
    internal class Ogrenci
    {
        private string ad;
        private string soyad;
        private string alan;
        private int yas;

        public string ADI
        {
            get { return ad; }
            set { ad = value; }
        }

        public string SOYADI
        {
            get { return soyad; }
            set { soyad = value; }
        }

        public string ALANI
        {
            get { return alan; }
            set { alan = value; }
        }

        public int YASI
        {
            get { return yas; }
            set
            {
                if (value < 18)
                {
                    Console.WriteLine("Yaşı 18'den küçük olamaz.");
                }
                else
                {
                    yas = value;
                }
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Ogrenci ogr = new Ogrenci();
            ogr.ADI = "Metin";
            ogr.SOYADI = "Katral";
            ogr.ALANI = "Bilgisayar";
            ogr.YASI = 16;

            if (ogr.YASI >= 18)
            {
                Console.WriteLine("Adı: " + ogr.ADI);
                Console.WriteLine("Soyadı: " + ogr.SOYADI);
                Console.WriteLine("Alanı: " + ogr.ALANI);
                Console.WriteLine("Yaşı: " + ogr.YASI);
            }

            Console.Read();
        }
    }
}
 
Yaşın 18 olma doğrulaması isim vs. yazdıktan sonra soruyorsunuz. Yani ilk isimler vs alıyor sonra yaş doğrulanıyor onun yerine şöyle yapabilirsiniz
Kod:
using System;

namespace ConsoleApp2
{
 internal class Ogrenci
 {
 private string ad;
 private string soyad;
 private string alan;
 private int yas;

 public string ADI
 {
 get { return ad; }
 set { ad = value; }
 }

 public string SOYADI
 {
 get { return soyad; }
 set { soyad = value; }
 }

 public string ALANI
 {
 get { return alan; }
 set { alan = value; }
 }

 public int YASI
 {
 get { return yas; }
 set
 {
 if (value < 18)
 {
 Console.WriteLine("Yaşı 18'den küçük olamaz.");
 }
 else
 {
 yas = value;
 }
 }
 }
 }

 class Program
 {
 static void Main(string[] args)
 {
 Ogrenci ogr = new Ogrenci();
 ogr.ADI = "Metin";
 ogr.SOYADI = "Katral";
 ogr.ALANI = "Bilgisayar";
 ogr.YASI = 16;

 if (ogr.YASI >= 18)
 {
 Console.WriteLine("Adı: " + ogr.ADI);
 Console.WriteLine("Soyadı: " + ogr.SOYADI);
 Console.WriteLine("Alanı: " + ogr.ALANI);
 Console.WriteLine("Yaşı: " + ogr.YASI);
 }

 Console.Read();
 }
 }
}

Hocam bu şekilde doğru fakat benim isteğim yaş: Den sonra 18'den küçükse uyarı yazdırmak. Aslında uyarı yazıyor doğru fakat yaşın yanına yazmıyor üste yazıyor bunu çözemedim ben.
 
Return eklememişsin şu şekilde ekleyebilirsin.
C#:
public int YASI.
{
    get { return yas; }
    set
    {
        if (value < 18)
        {
            Console.WriteLine("Yaşınız 18'den küçük olamaz!");
            return; //return ile çık
        }
        else
        {
            yas = value;
        }
    }
}
 
Return eklememişsin şu şekilde ekleyebilirsin.
C#:
public int YASI.
{
 get { return yas; }
 set
 {
 if (value < 18)
 {
 Console.WriteLine("Yaşınız 18'den küçük olamaz!");
 return; //return ile çık
 }
 else
 {
 yas = value;
 }
 }
}

Hocam sonuç aynı
 
Selam, kodları aşağıda veriyorum. Amacım yaşı 18'den büyükse direkt olarak konsola sonucu yazdırmak. Eğer yaş 18'den küçükse konsolda "yaşı: 18'den küçük olamaz" uyarısı vermek. Fakat şu şekilde bir çıktı alıyorum:

Eki Görüntüle 1743845

Amacım üstte yer alan metni "yaşı: 18'den küçük olamaz" şeklinde yazdırmak fakat bunu yapamadım.

C#:
using System;

namespace ConsoleApp2.
{
 internal class Ogrenci.
 {
 private string ad;
 private string soyad;
 private string alan;
 private int yas;

 public string ADI.
 {
 get { return ad; }
 set { ad = value; }
 }

 public string SOYADI.
 {
 get { return soyad; }
 set { soyad = value; }
 }

 public string ALANI.
 {
 get { return alan; }
 set { alan = value; }
 }
 public int YASI.
 {
 get { return yas; }
 set.
 {
 if (value < 18)
 {
 Console.WriteLine("Yaşınız 18'den küçük olamaz!");
 }
 else.
 {
 yas = value;
 }
 }
 }
 }
}
using ConsoleApp2;
using System.Reflection;
using System;

class Program.
{
 static void Main(string[] args)
 {
 Ogrenci ogr = new Ogrenci();
 ogr.ADI = "Metin";
 ogr.SOYADI = "Katral";
 ogr.ALANI = "Bilgisayar";
 ogr.YASI = 16;

 Console.WriteLine("Adı: " + ogr.ADI);
 Console.WriteLine("Soyadı: " + ogr.SOYADI);
 Console.WriteLine("Alanı: " + ogr.ALANI);
 Console.WriteLine("Yaşı: " + ogr.YASI);

 Console.Read();
 }
}
Sorununuzu tam anlayamadım, siz elde etmek istediğiniz çıktının bir örneğini paylaşabilir misiniz?
 
Bu şekilde üstte değil altta uyarı vermesini istiyorum.
O zaman sorumlulukları ayıralım.

Oradaki Ogrenci isimli sınıfın tek görevi verileri tutmak olsun, sen yaş olarak ister 18 ver ister 500 ver ister -5 ver o karışamasın.

Karışamayacağı için o 18den küçük olamazsınız diye uyarı logunu atmasın, onun görevi değil çünkü. Ogrenci sınıfı değer ne gelirse gelsin yas = value; diye set etsin, (if (value<18 ) kontrolü kalkacak yani oradan)

Şimdi Main içindeki asıl çalışacak programa dönelim. Yeni bir ogrenci oluşturuldu, adı, yaşı vb. set edildi. (Uyarı mesajı falan yok henüz).
Sisteme girmiş olduğun bilgileri yazdıracak şimdi, Adı: şu, Soyadı: Bu vb. diye.

Sisteme tanımlanan ogrencinin bilgileri yazdırıldıktan sonra şimdi kontrol zamanı. Elimizdeki ogrencinin verilerini validate edeceğiz. Bu örnekte bunu yine Main method içine ekleyebilirsin, ya da istiyorsan Ogrenci sınıfının içine bir yasKontroluYap(Ogrenci ogr) gibi bir method ekleyebilirsin, daha güzeli ise sadece verilerin geçerliliğini kontrol edecek bir validator sınıfı oluşturup onun içine kontrol methodları yazmak.

Neyse, ogrenci oluştu, adı soyadı vb. yazdırmıştık. En sonunda kontrol ediyoruz yaş 18den küçük mü diye, orada da uyarını yazdırırsın.
 
O zaman sorumlulukları ayıralım.

Oradaki Ogrenci isimli sınıfın tek görevi verileri tutmak olsun, sen yaş olarak ister 18 ver ister 500 ver ister -5 ver o karışamasın.

Karışamayacağı için o 18'den küçük olamazsınız diye uyarı logunu atmasın, onun görevi değil çünkü. Ogrenci sınıfı değer ne gelirse gelsin yas = Value; diye set etsin, (if (value<18 ) kontrolü kalkacak yani oradan)

Şimdi Main içindeki asıl çalışacak programa dönelim. Yeni bir ogrenci oluşturuldu, adı, yaşı vb. set edildi. (Uyarı mesajı falan yok henüz).
Sisteme girmiş olduğun bilgileri yazdıracak şimdi, Adı: Şu, Soyadı: Bu vb. diye.

Sisteme tanımlanan ogrencinin bilgileri yazdırıldıktan sonra şimdi kontrol zamanı. Elimizdeki ogrencinin verilerini validate edeceğiz. Bu örnekte bunu yine Main method içine ekleyebilirsin, ya da istiyorsan Ogrenci sınıfının içine bir yasKontroluYap(Ogrenci ogr) gibi bir method ekleyebilirsin, daha güzeli ise sadece verilerin geçerliliğini kontrol edecek bir validator sınıfı oluşturup onun içine kontrol methodları yazmak.

Neyse, ogrenci oluştu, adı soyadı vb. yazdırmıştık. En sonunda kontrol ediyoruz yaş 18'den küçük mü diye, orada da uyarını yazdırırsın.

Teşekkür ederim
 

Geri
Yukarı