2011-07-03 22 views
8

kodunda saklamak için en iyi yöntem Uygulamamda (C#), günlüğe yazdırılan, kullanıcıya sunulan vb. Çok sayıda const iletisine sahibim. Bu const iletileri değişmez. Onları harici bir dosyaya veya DB'ye koymanın bir anlamı yoktur. Çözümüm çok basit - Statik bir sınıf oluşturmayı ve ConstMessages adlandırma yapmayı düşünüyorum. Bu sınıf, basitçe, uygulamanın herhangi bir yerinden erişilebilen birçok kamu kurgusu dizesi değişkenini tutacaktır. Eğer bu yöntemde yanlış bir şey varsa ve daha iyi yollar varsa lütfen önerebilir misiniz? Teşekkürler!Uygulama const dizelerini

+1

Tavsiye edilmeyen bir çözüm arıyorsanız; Bu mesajları saklamak için harici dosya kullanmalısınız (yapılandırma dosyası '.app' veya' .config' gibi). –

+1

Bu dizeler değişmezse neden bir sınıfa yerleştirilir? Görünüşe göre onlar için bir değişiklik bekliyorsunuz. –

cevap

6

Sürüm oluşturma sorunlarını aşmak için const yerine readonly kullanırım.

+0

Deneme kullanarak sürümler-sorunlar? Nasıl yani? – Alxandr

+1

Const derleme zamanıdır, salt okunur çalışma zamanıdır. Daha fazla bilgi burada http://www.shrinkrays.net/code-snippets/csharp/const-vs-readonly-in-csharp.aspx – anivas

+8

@Alxandr: Kod içinde birden çok yerde yeniden kullanılan bir derlemede sabitler kullanırsanız Derleme tarafından kodlanmış olması nedeniyle, derlemeyi kullanan tüm istemci kodlarını yeniden derlemek zorunda kalacaksınız. Salt okunur bir değerle, değer çalışma zamanında çözülür. Dolayısıyla, derlemenin yeni bir sürümünü tıklamak, istemci kodunun yeni değeri kullanmasına neden olur. Bu kitapta bunun hakkında iyi bir bölüm var: http://www.amazon.com/Effective-Covers-4-0-Specific-Development/dp/0321658701/ref=sr_1_1?ie=UTF8&qid=1309707290&sr=8-1 (bölüm 1: Öğe 2: yapıya salt okunur tercih) –

4

Genellikle basit uygulamalar için sorun değil - başka bir seçenek, uygulamanın bir dilde birden fazla yerelleştirilmesi/desteklenmesi gerektiğine inanıyorsanız, bir RESX dosyasıdır.

İlgili konular