2011-09-03 33 views
7

Olası Çoğalt:arasındaki fark?

C# Convert.ToString() ve .ToString() arasındaki fark nedir
variable.ToString() vs. Convert.ToString(variable)?

ToString() öğesini kullanarak dataRow[i] dönüştürmeye çalıştığımda bir hata alıyorum. Bunu nasıl düzeltirim? Bunların arasında basit ama önemli bir fark vardır

+0

hatasını atacaktır dr [0]? –

+0

Bildiğim kadarıyla, ne 'Tostring() ne de tostring() var. C# büyük/küçük harfe duyarlıdır; ToString’e mi atıf yapıyorsunuz yoksa başka tanımlanmış başka işlevleriniz var mı? Hataya neden olan kaynak kodunu göster ve bize hatayı göster. –

+0

Ayrıca "DbNull" ("null" değil) "sorunu" olabilir; ve 'IsNull (col)' kullanmanız gerekebilir, aksi takdirde indeks ('[col]') IIRC başarısız olabilir. Her durumda, lütfen * ilgili bilgileri ekleyin: "hata al", "çalışmıyor" kadar yararlıdır. –

cevap

8

...

ToString() nesnesi boş ise

Yani Object.ToString() durumunda, bu yükseltmek nesnesi boş zaman istisna yükseltmek NullReferenceException.

Convert.ToString() boş nesnenin durumunda String.Empty geri

(string) MyObject o = (string) NullObject durumunda Yani

boş

durumunda nesne atamak döküm;

Ancak, herhangi bir özelliğe erişmek için kullandığınızda, NullReferenceException değerini yükseltir.

http://maniish.wordpress.com/2007/10/08/difference-between-tostring-vs-converttostring-vs-string-cast/

15

Temel olarak her ikisi de bir String bir değere dönüştürmek için kullanılır ama bunların arasında temel bir fark vardır: biz NULL nesnesi olduğunda

, Convert.ToString(Object);Object.ToString(); ise NULL değeri işlemez kolları NULL değeri ve NULL Reference Exception'ı atar.

7

İlk olarak, Object.ToString(), Object sınıfındaki bir sanal işlevdir. Herhangi bir sınıf kendi uygulamasını sağlamak için ToString() öğesini geçersiz kılabilir. Convert.ToString() birçok farklı argüman almaya ve onları anlamlı bir dizeye dönüştürmeye çalışan statik bir yöntemdir. Ayrıca, nesne çağıran nesne boşsa, Object.ToString() başarısız olur.

Ayrıca, Object.ToString(), her zaman nesneyi beklediğiniz dize biçimine dönüştürmez. Örneğin, Object.ToString() temel işlevi her zaman nesnenin tam nitelikli tür adını döndürür. Herhangi bir sınıf, isterse ToString() 'i uygulayabilir ve bunun mutlaka anlamlı bir şey olması gerekmez.

1

Convert.ToString ve .Tostring arasında temel bir farklı var. Convert.ToString, Null istisnasıyla ilgilenir, ancak .Tostring