2009-05-27 26 views
19

Birisi bana C# ondalık ve ondalık arasındaki farkın büyük olacağını açıklayabilir.Ondalık ve ondalık arasındaki fark

Daha genel bir biçimde, ondalık, int, dize ve büyük harf sınıfları Decimal, Int32, String gibi küçük harfli yapılar arasındaki fark nedir.

Büyük harf sınıflarının da işlevleri (Decimal.Divide()) gibi sarması arasındaki tek fark nedir?

cevap

39

Aynısı. Tür ondalık, System.Decimal için bir diğer addır.

Temel olarak ondalık, Ondalık ile aynı şeydir. Kullanıcının tercih ettiği bir tercihtir, fakat en çok C++ programcıları arasında daha kolay ve daha iyi tanıdıkça int ve string kullanmayı tercih eder.

+1

Tam olarak aynıysa, neden ikisine de sahibiz? Neden sadece biri değil? –

+0

ondalık, .NET türü System.Decimal'in C# belirli bir sürümüdür - yalnızca bir takma adını ortaya çıkarır. – Nate

+0

Harika! Teşekkürler beyler! –

0

Ondalık, int, dize, her şeyi sizin için daha kolay/güzel hale getirmek için yalnızca kısa el gösterimleridir. Çerçeve gerçekten bir "ondalık" olduğunu bilmez, ancak System.Decimal'i bilir, bu nedenle kodunuzu derlerken, ondalık yalnızca System.Decimal'e dönüşür. Tüm türlerin tam olarak nitelendirildiği bazı kodlara bakmayı deneyin, ardından takma adların kullanıldığı bazı kodlara bakmayı deneyin, çoğu programcının daha küçük takma adlar tercih edeceğini ve bunu daha kolay okunacak şekilde algılayacağını düşünüyorum. Ayrıca geçişi kolaylaştırmak için C/C++ 'a geri atılabileceğini düşünüyorum.

1

built-in C# types tüm yapılar değildir *. Sistem ad alanındaki önceden tanımlanmış türler için takma adlardır. Onlar tam anlamıyla except formatting her şekilde aynıdır. Diğer adlar küçük harflerle ve anahtar kelimeler gibi biçimlendirilmiş (koyu mavi). Sistem türleri PascalCased ve formatlanmış tipler (açık mavi). C# .NET dili gibi


* object ve string her türlü bir .NET Framework Tipi eşlenmesi gerekir, sınıflar

+0

Yerleşik C# türleri (int, double, vb.) _are_ structs. –

+0

Teşekkürler Eric, beynimi bunun için evde bıraktım. –

2

bulunmaktadır.

İlk sorunuzu yanıtlamak için, ondalık System.Decimal .NET Framework türünün diğer adıdır. Bunlar birbirinin yerine kullanılabilir.

İkinci sorunuzu yanıtlamak için, hem Onar hem de ondalık, hem oluşturulan değişken hem de değer türünün kendisinin "Yapısı" dahil olmak üzere, aynı işlevleri genişletmelidir.

decimal FirstDec = 12; 
Decimal SecondDec = 13; 
decimal ThirdDec = decimal.Ceiling(FirstDec, SecondDec); 
Decimal FourthDec = Decimal.Floor(ThirdDec); 
bool isEqual = FirstDec.Equals(SecondDec) && FourthDec.Equals(ThirdDec); 

aşağıdaki MSDN Page for Built-In Types her takma eşleştiren hangi System.ValueType gösterecektir. Özellikle Decimal ve decimal için, bu MSDN Page for Decimal numaralı telefonu referans alabilirsiniz.