c# private class

my-lord
09-03-2017, 19:11   |  #1  
my-lord avatarı
OP Taze Üye
Teşekkür Sayısı: 2
10 mesaj
Kayıt Tarihi:Kayıt: Mar 2017

Merhaba arkadaşlar.Benim c# ile ilgili bir ödevim var.Bu ödevdeki bir class yapısıyla ilgili sizden bir fikir almak istiyorum.

Dortgen sınıfım var.Bu Dortgen sınıfında Dortgeni çizmeye yarayan fonksiyolarım var.

SahnePaneli diye bir sınıf var.Bu sınıfın içinde private ile tanımlanmış olan cizimAlani isimli bir Dortgen sınıfı var.Ben bu sınıfın içerisinde  Dortgen nesnesine ait fonksiyonları çağırarak SahnePanelini çizmek istiyorum.Bu fonskiyonları cizimAlani nesnesinin içinde nasıl çağırabilirim?Bu cizimAlani nesnesini nasıl tanımlayabilirim?


class SahnePaneli
{
    private int genislik;
    private int yukseklik;
    private int x;
    private int y;
    private Dortgen cizimAlani;***
 }

White-Fox
09-03-2017, 20:47   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,104 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

classın içinde private ifadeleri class içinden çağırabilirsiniz dışarıdan çağırmak isterseniz public kullanıcaksınız daha başka detaylar ve erişim belirtecleride vardır internal,protect gibi bunlar hakkında da araştırma yapıp işinize geldiği yerde kullanırsınız.Kolay gelsin...

my-lord
10-03-2017, 10:28   |  #3  
OP Taze Üye
Teşekkür Sayısı: 2
10 mesaj
Kayıt Tarihi:Kayıt: Mar 2017

Teşekkürler.Fakat tam olarak anlamış değilim.


class Dortgen
{
public void tepeciz()
public void dikeyciz()
public void tabanciz()
}

class SahnePaneli
{
private Dortgen cizimAlani
{
/*Ben burada Dörtgen class ının fonksiyonlarını nasıl
çağırabilirim.Bir örnek verebilir misiniz?*/

}

my-lord bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]
White-Fox
10-03-2017, 12:24   |  #4  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,104 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

Hocam ;
    public class Dortgen
    {
        

        public static void tepeciz()
        {

        }
         public static  void dikeyciz()
        {

        }

        public static void tabanciz()
        {

        }
    }


public class Cagir//bu sınıfın public olup olmaması fark etmez.
{
    private void Gelburaya()
    {
        Dortgen.dikeyciz();
        Dortgen.tepeciz();
        Dortgen.tabanciz();
    }
}
//Burada mevzu bir sınıfın bir üyesini  bir başka sınıfın bir metodu çekebilir
//private olan ifadelere sadece kendi sınıfından erişilebilir
//public olan ifadeye her alandan erişebilirsiniz.
//Daha başka erişim belirteçlerininde daha farklı anlamları vardır.
// Umarım Yardımı olur Kolay Gelsin...

White-Fox bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]
my-lord
10-03-2017, 14:58   |  #5  
OP Taze Üye
Teşekkür Sayısı: 2
10 mesaj
Kayıt Tarihi:Kayıt: Mar 2017

Peki private Dortgen cizimAlani    diye bir class tanımlama şekli var mı?Bu yapı bize ödevde hazır olarak verildi.

Bu yazım şekli kafamı çok karıştırdı.Normalde ben class cizimAlani yazip altında fonskiyonları teker teker yazardım.Biraz ezbere mi kaçıyorum bilmiyorum.

Son Düzenleme: my-lord ~ 10 Mart 2017 15:10
White-Fox
10-03-2017, 16:21   |  #6  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,104 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

private olan bir methodun içinde public barındırsanız bile private o publicin dışarı çıkmasına izin vermiyeceğinden derleyici size hata verir.private olarak bir class tanımlanır ancak ne oluyor ne bitiyor o classın içinde dir mevzu.Şu şekilde mümkün ;

class Dortgen
    {
        public static void tepeciz()
        {

        }
        public static void dikeyciz()
        {

        }

        public static void tabanciz()
        {

        }  

    }

class Cagir
{
    private void Gelburaya()
    {
       Dortgen.dikeyciz();
       Dortgen.tepeciz();
       Dortgen.tabanciz();
    }
}

burada class dortgen yazdınız erişim belirteci belirtmediniz derleyici onu şu şekilde okur ;

internal class Dortgen
    {
        public static void tepeciz()
        {

        }
        public static void dikeyciz()
        {

        }

        public static void tabanciz()
        {

        }  

    }

Kolay gelsin...

White-Fox bu faydalı yanıtı için aşağıdaki 1 kişiden teşekkür aldı... [ Göster ]