Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
705
Tıklama
0
Öne Çıkarma
c# base ile iligli bir soru :
D
8 yıl
Yüzbaşı
Konu Sahibi


using System;


class Temel
{
public int a;
}
class Tureyen : Temel
{
new int a;
base.a = 15;//<--hatanın olduğu yer.
}


burada neden hata alıyorum ?

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



B
8 yıl
Binbaşı

Yapıcı metod kullanman gerek. Instance variable a metod dışından erişemezsin.

 
class Tureyen : Temel
{
new int a;

public Tureyen()
{
base.a = 15;
}
}


Bu mesaja 1 cevap geldi.
D
8 yıl
Yüzbaşı
Konu Sahibi

instance bir sınıftan nesne üretirken diyoruz variable ise değişken demek ama bunları birleştirince bir anlam çıkaramadım yani instance variable ne demek ?




Bu mesajda bahsedilenler: @bersgurs
V
8 yıl
Binbaşı

su an yazdigin kod suna benziyor:

class A
{
int asd;
asd = 12;
}

base'e ozel bir durum yok.

bak mesela ustteki yerine sunu yazsaydin bunun adi instantiation
int asd = 12;
ve bunu classin icinde direkt yazabilirsin cunku ilk degeri vermissin

classin icinde declaration veya instantiation yapabilirsin
ama declaration yapip sonra ayriyetten assignment yapamazsin (ustteki class A daki gibi.)

o yuzden constructor (yapici metod) kullanmalisin senin durumunda. veya classin icindeki herhangi bir metodda kullanabilirsin.

base.a dedigin de zaten base yokmus gibi gecerli bu dedigim.

-------------

terimlere de aciklik getireyim once senin sorduklarin:

instance demek o class turunde bir nesne, object.
variable dedigin gibi degisken demek ornegin: int a = 12;
burada a, int turunde bir degisken. int dedigimiz arka planda Int32 demek. yani bu a, aslinda Int32 class'inin bir instance'i. (Int32 aslinda class degil ama oyleymis gibi dusunebilirsin)

instance olusturma yani nesne olusturma new anahtar kelimesiyle yapilir.
constructor yani yapici metod var ya hani public ClassIsmi() {} diye tanimlarsin.
bunu su sekilde cagiriyorsun: new ClassIsmi()
yani bu constructor metodunun ismi class ismi ile ayni gibi dusun, normal metod gibi cagir ama basina new ekle.
bu sana o classin bir instance'ini verir, tabii constructor'da yapilacak islemler yapilmis oldu o nesne uzerinde.

ustte yazdigim seyler;
declaration, tanimlama, int a; seklinde
assignment, atama. a = 12; seklinde
instantiation, olusturma. int a = 12; seklinde ki buna declaration + assignment da diyebilirsin ama instantiation daha dogru.
burada int ornegi verdim ama istedigin class icin uygulayabilirsin bunu. tabii 12 yerine new ClassIsmi(); seklinde olur.
dedigim gibi int de aslinda bir classtir bir nevi. class'lar reference type'tir. bu durumda Int32, Int16, Int64 (int, short, long), double ve float gibi olanlara Struct deniyor turkcesi Yapi seklinde gecer. Bunlar value type'tir yani deger tipi. reference vs value type arastirabilirsin onemli bir konu ve kafani belki karistirabilir. (string bir struct degildir classtir)

tam anlatamadiysam soyle daha iyi anlatmaya calisayim veya baskasi anlatir en azindan.


Bu mesaja 1 cevap geldi.
D
8 yıl
Yüzbaşı
Konu Sahibi

anladım çok sağ ol üstat :)




Bu mesajda bahsedilenler: @Microsoft Specialist
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.