Doğru veri türünü seçme

Tamamlandı

Değer türleri ile başvuru türleri arasındaki ve tam sayı ile kayan nokta türleri arasındaki farkı öğrendiniz.

İşinizin farklı veri türlerini alan, işleyen ve depolayan yeni bir uygulama derleyeceğini varsayalım. Hangi veri türlerini kullanıyorsunuz?

Bazı durumlarda, kolay bir seçimdir. Örneğin, metinle çalışmanız gerektiğinde, önemli miktarda birleştirme gerçekleştirmeniz gerekmediği sürece veri türünü varsayılan olarak kullanırsınız string .

Peki sayısal verilerle çalışırken ne olacak? 11 farklı seçenek vardır. Doğru veri türünü nasıl seçersiniz?

Doğru veri türünü seçme

Seçebileceğiniz çok sayıda veri türü varken, belirli bir duruma uygun veri türünü seçmek için hangi ölçütleri kullanmanız gerekir?

Seçeneklerinizi değerlendirirken birkaç önemli noktaya dikkat etmeniz gerekir. Genellikle tek bir doğru yanıt yoktur ancak bazı yanıtlar diğerlerinden daha doğrudur.

Uygulamanızın sınır değeri aralığı gereksinimlerini karşılayan veri türünü seçin

Veri türü seçiminiz, belirli bir değişkende depolayabileceğiniz verilerin boyutu için sınırları belirlemenize yardımcı olabilir. Örneğin, belirli bir değişkenin yalnızca 1 ile 10.000 arasında bir sayıyı depolaması gerektiğini biliyorsanız, aksi takdirde beklenenin sınırlarının dışındadır, muhtemelen kaçınabilirsiniz byte ve sbyte aralıkları çok düşük olduğundan.

Ayrıca, gerektiğinden daha fazla veri depolayabildiğinden, büyük olasılıkla , long, uintve ulong gerekmeyebilirint. Benzer şekilde, kesirli değerler gerekmediyse büyük olasılıkla float, double ve decimal seçeneklerini de atlarsınız. ve olarak shortushortdaraltabilirsiniz; her ikisi de uygulanabilir olabilir. Negatif bir değerin uygulamanızda bir anlamı olmadığından eminseniz(pozitif işaretsiz tamsayı, 0 - 65.535) seçebilirsiniz ushort . Şimdi, 0 ila 65535 sınırının dışında ushort türü değişkenine atanan her değer bir özel durum oluşturur, böylece uygulamanızı denetlerken bir miktar sağlamlığı zorunlu kılmanıza yardımcı olur.

Verilere sığacak veri türünü seçerek başlayın (performansı iyileştirmek için değil)

Uygulamanızın performansını artırdığını düşünerek verileri depolamak için en az biti kullanan veri türünü seçmek isteyebilirsiniz. Ancak, uygulama performansıyla (yani, uygulamanızın ne kadar hızlı çalıştığıyla) ilgili en iyi öneri uygulamayı "erkenden iyileştirmemektir". Uygulamanızın performansını etkileyebilecek veri türlerinin seçimi de dahil olmak üzere kodunuzun bölümlerini tahmin etme cazibesine karşı koymalısınız.

Çoğunlukla, belirli bir veri türünün daha az bilgi depoladığı için daha fazla bilgi depolayan bir veri türüne göre daha az bilgisayar işlemcisi ve bellek kullanması gerektiği varsayılır. Bunun yerine, verilerinize uygun türü seçmeniz, sonra da performansı olumsuz yönde etkileyen uygulama kısımlarıyla ilgili bilgiye dayalı içgörüler sağlayan özel yazılımlar kullanarak uygulamanızın performansını deneysel olarak ölçmeniz gerekir.

Kullanılan kitaplık işlevlerinin giriş ve çıkış veri türlerine göre veri türlerini seçme

İki tarih arasındaki bir yıl aralığı ile çalışmak istediğinizi varsayalım. Uygulama bir iş uygulaması olduğundan yalnızca 1960 ile 2200 arasında bir aralığa ihtiyacınız olduğunu belirleyebilirsiniz. 0 ile 255 arasındaki sayıları temsil ettiğinden birlikte byte çalışmayı düşünebilirsiniz.

Ancak, System.TimeSpan ve System.DateTime sınıflarındaki yerleşik yöntemlere baktığınızda genellikle double ve int türündeki değerleri kabul ettiğinizi fark edersiniz. sbyte türünü seçerseniz sbyte ile double veya int arasında sürekli geçiş yapacaksınız. Bu durumda, saniye altı duyarlığa ihtiyaç duymuyorsanız int, saniye altı duyarlığa ihtiyacınız varsa double türünü seçmeniz daha mantıklı olabilir.

Diğer sistemlere etkisine bağlı olarak veri türlerini seçme

Bazen, bilgilerin başka uygulamalar veya bir veritabanı gibi başka sistemler tarafından nasıl kullanıldığını göz önünde bulundurmanız gerekir. Örneğin, SQL Server'ın tür sistemi C# dilinin tür sisteminden farklıdır. Sonuç olarak, verileri bir veritabanına kaydedebilmeniz için ikisi arasında bir eşleme yapılmalıdır.

Uygulamanızın amacı bir veritabanıyla arabirim oluşturmaksa, büyük olasılıkla verilerin nasıl depolandığını ve ne kadar veri depolandığını göz önünde bulundurmanız gerekir. Daha büyük bir veri türü seçimi, uygulamanızın oluşturacağı tüm verileri depolamak için gereken fiziksel depolamanın miktarını (ve maliyetini) etkileyebilir.

Şüpheye düştüğünüzde temel bilgilere bağlı kalın

Başlarken dikkat edilmesi gereken bazı noktalara göz atmışken basitlik açısından aşağıdakiler dahil olmak üzere temel veri türlerinin bir alt kümesini tercih etmelisiniz:

  • Çoğu tam sayı için int
  • Parayı temsil eden sayılar için decimal
  • True veya false değerleri için bool
  • Alfasayısal değer için string

Özel durumlar için özel karmaşık türler seçin

Belirli bir amaç için zaten bir veya daha fazla veri türü varsa veri türlerini yeniden oluşturmayın. Aşağıdaki örnekler belirli bir .NET veri türlerinin nerede yararlı olabileceğini belirler:

  • byte: diğer bilgisayar sistemlerinden gelen kodlanmış verilerle veya farklı karakter kümeleri kullanarak çalışma.
  • double: geometrik veya bilimsel amaçlarla çalışma. double sıklıkla hareketli oyunlar derlerken kullanılır.
  • Belirli bir tarih ve saat değeri için System.DateTime.
  • Yıl / ay / gün / saat / dakika / saniye / milisaniye aralığı için System.TimeSpan.

Özet

Kodunuz için veri türlerini ve genellikle birden fazla seçeneği seçerken dikkat edilmesi gereken noktalar vardır. Seçimlerinizi düşünün ve iyi bir nedeniniz yoksa , , decimalstringve boolgibi inttemel türlerle devam etmeye çalışın.