Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
6
Cevap
347
Tıklama
0
Öne Çıkarma
C# hakkında :
M
8 yıl
Onbaşı
Konu Sahibi

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 ?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

T
8 yıl
Yarbay

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ı >
Bu mesaja 1 cevap geldi.
M
8 yıl
Onbaşı
Konu Sahibi

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.




Bu mesajda bahsedilenler: @revivo72
N
8 yıl
Er

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ı >

T
8 yıl
Yarbay

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ı >
Bu mesaja 2 cevap geldi.
M
8 yıl
Onbaşı
Konu Sahibi

M
8 yıl
Onbaşı
Konu Sahibi

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.