Şimdi Ara

C# hakkında :

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
341
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selamlar.
    Sorum :
    C#'ta class ve struct'ı dizi gibi kullanabilyoruz
    örneğin

    class Program
    {
    static void Main(string[] args)
    {
    Program[] a = new Program[5];
    }
    }

    ya da

    struct Program
    {
    static void Main(string[] args)
    {
    Program[] a = new Program[5];
    }
    }

    şimdi burada indekleyici kullanılmış arka planda desem olmayacak çünkü indeksleyici instance'ın dizi gibi kullanılmasını sağlıyor. Ama class veya struct'ın dizi gibi kullanılmasını sağlayan şey nedir ?



    < Bu mesaj bu kişi tarafından değiştirildi MSYYSM -- 9 Kasım 2017; 11:41:32 >



  • C'de struct oluşturma ve struct dizisi oluşturma nasılsa C# ta da öyle olmalı yani struct hafızada (heap) ne kadar yer kaplıyorsa o kadar alan ayrılıp hafızaya yerleştiriliyor, endeks te hafızadaki adresi tutan bir değişken oluyor sadece. Yani class veya struct'ın dizi gibi kullanılmasını sağlayan şey, normal bir dizinin (array) kullanılmasından çok farklı deil, sadece dizi elemanları örneğin bir integer kadar (2-8byte) yer tutuyorsa, struct ve class durumunda tanımlanan struct ve class ın büyüklüğü kadar yer tutar.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Merhaba.
    struct sadece stack'te yer tutuyor. Özelliği de bu zaten. Ama şunu farkettim düşünürken indeksleyiciyle dizi operatörü farklı şeyler gibi geldi çünkü indeksleyici köşeliparantez operatörlerine istediğimiz şeyi yaptıyoruz ama Struct ve class'tan oluşturudumuz diziler daha farklı bişey olması lazım çünkü eğer indeksleyici olsaydı tekrar override edebilirdik diye düşünüyorum ama yine de kesin değil söylediğim bunu okuyanlar yani böyleymiş demesin sadece tahmin yani.
  • New dinamik dizi olusturmaya yaramıyor mu heap'te oluşturuluyor diye biliyorum ama program bu kadarsa yapı ya da sınıf oluşturmaya gerek yok bence sonucta daha fazla değişkeni tekrar tekrar yazmamak icin kullanılıyor.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • new operatörü ile oluşturulan herşey int , string, veya struct , class olsun heap te oluşturulur örneğin



    quote:



    int[] dizi = new int[10000];

    Sinifim[] sinif_dizim = new Sinifim[10000];





    de 10.000 x int + 10.000 x Sinifim büyüklüğü stack'te oluşturulsa stack'ın kullanım amacına ters düşer cunku stack hızlı çalışması gereken bellek bölgesidir.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • C# hakkında :
  • Yapay Zeka’dan İlgili Konular
    c'de yardım
    14 yıl önce açıldı
    c++ örnekleri
    19 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.