2009-10-27 16 views
9

systemie Windows umożliwia konfigurację Measurement system do Metric lub U.S. Czy istnieje sposób, aby użyć tego ustawienia do odczytu (w skrócie) Nazwy jednostek w C#?Używając „system pomiarowy” Nazwy jednostek (kg/lb, m/w, etc) w C#

np. podczas wyświetlania wagi w Metric chcę pokazać kg, ale w U.S. chcę pokazać lb. Podobnie dla długości, objętości itp.

Przyjrzałem się SystemInformation, CultureInfo, konfiguracji i globalizacji, ale nie widziałem niczego oczywistego. Czy coś mi umknęło, czy też patrzę w niewłaściwym miejscu?

Odpowiedz

6

Uważam, że najlepszą rzeczą, jaką możesz zrobić, to określić, czy twoja kultura jest metryczna, czy nie, a następnie sam sobie z nią poradzić. Nie sądzę, że istnieje jakieś wbudowane formatowanie? Może się mylę, ale nigdzie nie mogę znaleźć żadnego odniesienia.

To pozwoli ustalić, czy kultura jest metryczny czy nie:

CultureInfo culture = new CultureInfo("en-GB"); 
    RegionInfo regionInfo = new RegionInfo(culture.LCID); 
    bool isMetric = regionInfo.IsMetric; 
+0

@GenericTypeTea, dziękuję, że wydaje się, że to jest droga. Wydaje się dziwne, że konfiguracja metryki/nas nie daje sposobu na dostęp do jednostek, zastanawiam się, do czego służy ... coś do zbadania, kiedy się nudzę :) – WileCau

+0

Jeśli znajdziesz lepszą odpowiedź, pozwól nam wiedzieć. – GenericTypeTea

0

@GenericTypeTea jest prawo o RegionInfo będąc miejscem na wygląd.

Dodatkowo F # zawiera wiele funkcji do pracy z jednostkami miary. Może być sens, aby zbudować część tego, czego potrzebujesz w F # i wywołać ją z C#.

Zobacz this blog post i kolejne posty, aby uzyskać informacje na temat F # i jednostek miary.

+0

@Mike Two, dziękuję Czytałem post na blogu i jest kilka postów na SO również o tym. Jednostki w F # wyglądają interesująco, ale wydaje się, że nadal musisz znać jednostki, z których korzystasz (np. Musisz wiedzieć, że używasz kg vs lb), co chciałem uzyskać z konfiguracji systemu. Nie znam F #, więc mogłem źle zrozumieć to, co czytałem. – WileCau