Szoftverfejlesztés .NET platformon - Jegyzet 16. fejezet

A VIK Wikiből

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


70-536 .NET Framework 2.0 Application Development Foundation

%TOC{depth="3"}%

Kultúrák használata

CultureInfo: kultúraspecifikus beállítások

  • stringek összehasonlítása
  • számok formázása és összehasonlítása
  • dátumok összehasonlítása és formázása
  • erőforrások használata

Három típusa van

  • invariant culture: kultúrafüggetlen műveletek, ha fontos a konzisztencia.

Pl. program lejárati dátumának tárolása.

  • neutral culture: olyan kultúrák, amiknek több változatuk van. Pl. en, fr, sp
  • specific culture: kultúra + konkrét változat. Pl. fr-FR

Aktuális kultúra használata

  • lekérdezése: Thread.CurrentThread.CurrentCulture,

Thread.CurrentThread.CurrentUICulture (grafikus megjelenítési beállítások, futás közben nem változtatható meg)

  • pénznem formázása: salaryTextBox.Text = (100000).ToString("C");

Kultúrák felsorolása

  • CultureInfo.GetCultures()
  • CultureTypes-szal lehet szűkíteni, pl. AllCultures, NeutralCultures, InstalledWin32Cultures

RegionInfo: kultúrák további finomítása

RegionInfo demoRegion = new RegionInfo(usersCulture.LCID);  // vagy
RegionInfo demoRegion = new RegionInfo(usersCulture.Name);

NumberFormatInfo: számokkal kapcsolatos részletes információk, pl. tizedesjel. Létező kultúrában is lecserélhető, nem kell hozzá újat létrehozni.

  • pénznem: usersCulture.NumberFormat.CurrencySymbol
  • szám formázási adatok: usersCulture.NumberFormat.NumberDecimalSeparator

DateTimeFormatInfo: dátumokkal kapcsolatos részletes információk, pl. hét napjainak neve. Létező kultúrában is lecserélhető, nem kell hozzá újat létrehozni.

  • DateSeparator
  • DayNames

CompareInfo: összehasonlítás

CompareInfo demoInfo = Thread.CurrentThread.CurrentCulture.CompareInfo;
demoInfo.Compare(str1, str2);

CompareOptions: összehasonlítás testreszabása

  • IgnoreCase
  • IgnoreNonSpace
  • IgnoreSymbols: írásjeleket ne vegye figyelembe
  • Ordinal: összehasonlítás unicode kód alapján
  • OrdinalIgnoreCase
  • StringSort: nem alfanumerikus karakterek kerülnek előre

Egyedi kultúra létrehozása

Telepíthető admin jogokkal, vagy létrehozható a CultureAndRegionInfoBuilder osztállyal. Az utóbbihoz kell egy referencia a sysglobl.dll-re.

Meglévő kultúra módosítása

CultureAndRegionInfoBuilder demoBuilder =
	 new CultureAndRegionInfoBuilder("en-MS", CultureAndRegionModifiers.None);
demoBuilder.LoadDataFromCultureInfo(new CultureInfo("en-US"));
demoBuilder.LoadDataFromRegionInfo(new RegionInfo("US"));

Megváltoztathatók a property-k: CurrencyName, CultureName, NumberFormat, stb.

CultureAndRegionModifiers

  • Neutral: neutrális kultúra
  • None: specifikus kultúra
  • Replacement: létező kultúrát helyettesít

-- Peti - 2007.07.03.