Visual Studio Derleme Hatasi
-
-
belirtilen dizindeki exe dosyasını silmişsin. Project menüsündne rebuild yaparsan düzelir
-
solution explorer da önce projene sağ tıklayıp clean de, ondan sonra da rebuild yap
-
unbalanced bunu yazdı
solution explorer da önce projene sağ tıklayıp clean de, ondan sonra da rebuild yap
Sadece bir değişkene sıfır atayınca düzeldi anlamadım olayı.
Bir sorum daha var.
f4 diye bir değişkenim var. Bunu bir döngüde artırıyorum. Başta direk int f4; olarak tanımladım.
Yazdırırkende Console.WriteLine("" + f4); yaptım. ama şu hatayı veriyor:
Error1Use of unassigned local variable 'f4'
f4 ü bildirimde sıfıra eşitleyince vermiyor. Her değişkeni bir şeye mi atamamız lazım c#da ?
-
hocam sen şimdi
int f4; yaptığında f4 değişkeni bellekte oluşturuluyor ama diğer bellek alanında bir değeri yok, değeri olmadığı için de hata veriyor. yani o değişkeni kullanmak istiyorsan ilk olarak bir değer ataman lazım. 0 atayabilirsin. stringlerde de "" ataman gerek gibi.
-
unbalanced bunu yazdı
hocam sen şimdi
int f4; yaptığında f4 değişkeni bellekte oluşturuluyor ama diğer bellek alanında bir değeri yok, değeri olmadığı için de hata veriyor. yani o değişkeni kullanmak istiyorsan ilk olarak bir değer ataman lazım. 0 atayabilirsin. stringlerde de "" ataman gerek gibi.
Hmm c de böyle bir şey yoktu. Sayaç gibi değişkenler hariç bir ilk değer atama zorunluluğu yoktu. Bunda tüm sayısal değişkenlerde var denilebilir yani ?
-
tüm değişkenler için böyle hocam. değer atamazsan null olur ve onu da bir yerde kullanamıyorsun. stringde de böyle kendi yarattığın bir sınıfta da böyle
-
unbalanced bunu yazdı
solution explorer da önce projene sağ tıklayıp clean de, ondan sonra da rebuild yap
rebuild zaten clean + build değil mi?
-
İki sorum daha olacak:
Veri Tipi Dönüşümleri İle İlgili.
1. sinde karakör reel sayı olabileceği için aynı C deki gibi (vertipi) şeklinde dönüşüm belirteci kullanarak sadece tam kısmı almasını sağlamış.
int karakok = (int)Math.Sqrt(sayi);
2. sinde ise okuduğum kadarı ile Convert komutu ile değişkenlerin tipleri değiştirilebiliyor diyor.
(toInt(); diye bir sınıf var mı bilmiyorum ama) aşağıdaki gibi kullanım da varken yukardaki kullanımından farkı nedir ? Convert de dönüşüm sağlıyor ? Farkı ne ki?
int karakok = Convert.Toint(Math.Sqrt(sayi))
İkincisi:
Hoca değişkenler başlığı altnda bir örnekte:
float sayi=5.7f;
demiş. 5.7 nin dibindeki f ne oluyor gerek var mı böyle bir şeye ?
-
-
@zeybekustasi, hocam tür dönüşümlerini iyi öğren (implicit ve explicit konularına bir bak)
soruna gelirsek, aslında çok fark olmamasına rağmen (int)değişken şeklinde yaptığında buna casting denir ve sen değişken türünün aslında bir integer olduğundan eminsin ve bunu derleyiceye bu şekilde bildiriyorsun.
converting de ise, çevrim işleri IConvertible arayızünden türetilmiş bir sınıf olup, derleyici arkaplanda ne olacağını bilmese de(örneğin çevirmek istediğin veri tipinin class ı farklı bir şeyden türemişse bile) çevrim yapar, biraz kullanıcı odaklı bir şey
bu çokda önemli bir şey değil, asıl tehlike şöyle bi şey
double degisken = 0.6;
int casted = (int)degisken;
int converted = Convert.ToInt32(degisken);
şimdi burda degisken e biz 0.6 verdik.. casted değişkeni 0 olarak gelir ama converted 1 olarak atanmış olur..
@fatih, hocam bilmiyorum dediğin gibi de olabilir olmayabilir de. ama aralarında bir fark olması gerek de çok detaylı araştırmadım
edit: aynı değilmiş hocam
http://stackoverflow.com/a/5429888/1022138
sadece clean + build in yaptığı iş rebuildi tanımlamaya yetmiyor
unbalanced tarafından 02/Kas/13 20:23 tarihinde düzenlenmiştir