C# Cannot implicitly convert type X to Y Hatası Ve Çözümü

Muhammet Ali
9 Haziran 2015 Salı
0

Hatanın Muhtemel Çeşitleri:

Cannot implicitly convert type ‘string’ to ‘int’

Cannot implicitly convert type ‘string’ to ‘System.DateTime’ Cannot implicitly convert type ‘decimal’ to ‘bool’

Cannot implicitly convert type ‘string’ to ‘System.Windows.Forms.TextBox’

Hatanın Muhtemel Nedenleri:

   Y veri tipi bekleyen bir değişkene X veri tipinde bir değer atanmaya çalışılmıştır.

   Form üzerindeki bir kontrolün özelliğine değer atanmaya çalışılırken sadece kontrolün adı

yazılmıştır.

 

Hatanın Muhtemel Çözümleri:

            Değişkenin beklediği veri tipinde bir değer girmek ya da uygunsa ConvertTo, Parse gibi yön-

temlerle tür dönüştürme işlemi gerçekleştirmektir.

            Kontrolün sadece adı yerine kontrolün özelliği yazılır.

Örnek:

 

int sayac;

sayac = textBox1.Text;
int yas;

yas=”on yedi”;

 

Burada textBox1’in Text özelliği string veri tipindedir. Bu değer, int veri tipindeki sayac değişkeni-
ne atanmak istendiğinde bu hata meydana gelir. İkinci bir hata da yas adlı int veri tipindeki değiş-
kene “on yedi” string değerini atamaya çalışmaktır. Bu hataların çözümü şu şekilde olacaktır:

 

int sayac;

sayac = Convert.ToInt32(textBox1.Text);
int yas;

yas=17;

 

Hatanın ikinci türüne örnek olarak şu verilebilir. Bir formda textBox1 adında bir textbox ve comboBox1 adında bir combobox olsun. Yapılmak istenen textBox1’ de “Yalçın” yazısı çıkarmak ve comboBox1’in elemanlarına da “Emre” yazısını eklemektir.

 

textBox1 = “Yalçın”;

comboBox1 = “Emre”;

 

Sadece kontrol adları kullanıldığı için bu kodlar hatalıdır. Doğru yazımı şu şekildedir:

 

textBox1.Text = “Yalçın”;

comboBox1.Items.Add( “Emre”); 



Yorum yaz