összetett formázás

Bemeneti összetett formázást a .NET-keretrendszer használ objektumok listáját, valamint egy összetett formátum string. A kompozit formátum sztring rögzített szöveget, amely magában foglalja az indexált helyőrzők nevezett formátum elemek, és megfelelnek a tárgyakat a listából. A formázás generál kapott szöveget horgony szöveget forrás, amely magában foglalja egy sor képviselete tárgyak a listából.







kompozit formázás funkciót támogatja az alábbi módszerekkel:

String.Format módszer. amely visszaadja a formázott eredmények húr.

StringBuilder.AppendFormat módszer. amely növeli a formázott eredmények stringet a StringBuilder objektumot.

Néhány túlterhelés Console.WriteLine módszer. amely megjeleníti a formázott eredmény karakterláncot a konzolon.

Néhány túlterhelés TextWriter.WriteLine módszer. amely rögzíti a formázott eredmény karakterláncot egy patak vagy fájlt. Osztályba tartozó származó TextWriter. például StreamWriter és HtmlTextWriter. is támogatja ezt a funkciót.

Debug.WriteLine módszer (String, Object []). A kimeneti jel a formázott üzenetet a nyomkövetési hallgatók.

TraceSource.TraceInformation módszer (String, Object []). módszer, amely rögzíti információt nyoma hallgatók.

Bármilyen formátum elemet utalhat bármilyen tárgy listán. Például, ha van három tárgy, akkor lehetséges, hogy formázza az első másodpercben, majd az első és harmadik tárgyak, amelyben a következő sor összetett formázás „” Tárgyak, amelyek nem hivatkoznak formázás átugorja. Ha a leíró paraméter kifejezés olyan elem külső objektumok listája, a futási teremt FormatException kivétel.

összehangolás

Opcionális igazítás komponens - egy egész szám egy jel, amely arra használható, hogy egy kívánt formátumú mezőszélességet. Ha a beigazítási érték kisebb, mint a hossza a formázott karakterlánc, majd igazítás kimarad, és az érték a mező szélessége használjuk a hossza a formázott karakterlánc. Formázott adatok van igazítva a területen, hogy a jobb, ha az illesztési értéke pozitív, vagy balra, ha az illesztési negatív. Ha szükséges, a formázott karakterlánc van zárva üres. Ha az illesztő, meg kell tenni a vesszőt.

A példában két tömb meghatározása a következő: az egyik tartalmazza a nevét az alkalmazottak, és a második - az óraszám, hogy már alkalmazott két hétig. String összetett méret hozzáigazítja a neveket a bal szélén a 20 karakteres mező, valamint a munkaidő - a jobb szélén az 5 karakteres mezőbe. Felhívjuk figyelmét, hogy a szabványos formátum string „N1” is használják formázási óráig tizedesjegyet.

formátum string alkatrész

FormatString választható összetevő - a formátum string megfelelő típusú objektum formázása. Ha az adott objektum egy objektum DateTime. vonalat alkalmazunk standard vagy egyéni számformátumhoz, ha a megfelelő objektum egy felsorolás értéket használjon húr listaformátumban. Ha formatString összetevő nincs megadva, a számértékek, a dátum és idő értékek, és a transzferek egy közös formátumban ( „G”). Amikor formatString komponenst must vastagbélben.







Típusai átutalás (minden típus származó System.Enum)

így fogszabályozó

A kezdet és a végén a formázási elemek jelöljük a nyitó és záró zárójel. Ez azt jelenti, hogy a kimeneti nyitó és záró zárójelek kell használni a menekülési-szekvenciát. Ahhoz, hogy megjelenítsen egy nyitó vagy záró zárójel egy fix szöveget, hogy két, illetve megnyitását, záró zárójelek egy sorban ( „>”). Nadrágtartók formátumban tétel értelmezik egymást a sorrendben a felfedezés. Értelmezése beágyazott zárójelek nem támogatott.

Az eljárást az értelmezés a konzolok nem várt eredményekhez vezethet. Vegyük például a méret tétel „>>”, amelytől a nyitó zárójel, egy számérték formázva, mint decimális szám, a záró zárójel. Tény, hogy a formátum elemet a következőképpen értelmezi:

Az első két nyitó zárójelek ( "

A következő három karakter ( "

A következő karakter ( „D”) úgy kell értelmezni, mint egy mutató a decimális szám formátum, de mögöttük egy pár zárójelet ( „>>”) eredménye egy zárójel. Mivel az így kapott szöveget ( „D>”) nem egy szabványos numerikus formátumban leíró, akkor értelmezhető karakterláncot tartalmazó egyedi méret, ami arra enged következtetni „D>” prompt.

Az utolsó zárójel ( „>”) értelmezi a végén a formázás elem.

A végeredmény, amely indul - a string „”. A számérték, amely köteles volt méret nem jelenik meg.

Az egyik módja annak, hogy félreértések elkerülése végett a merevítések és formázási elemek írásakor külön formázás kódot merevítések és formázási elemet. Ez azt jelenti, hogy az első művelet a kimeneti formátum string a nyitó zárójel, a következő művelet - az eredmény a formázás feldolgozási elem, és az utóbbi művelet - összhangban végén merevítő. Ez a megközelítés azt az alábbi példában.

feldolgozás érdekében

Ha a hívás egy összetett formázási eljárás magában IFormatProvider érv. amelynek értéke nem nulla. futásidejű felhívja IFormatProvider.GetFormat módszer. kérni végrehajtásának ICustomFormatter. Ha a módszer visszatérhet végrehajtás ICustomFormatter. ez cache későbbi felhasználásra.

Minden érték a paraméter listában megfelelő formázási elemet alakítjuk húr végre a következő cselekmények. Ha bármelyik feltétel az első három lépést tart a logikai értéke „true”, vissza szövegként értékeit ezt a lépést, és az ezt követő lépést.

Ha formázott olyan érték null. üres karakterláncot ad vissza ( „”).

Ha ICustomFormatter végrehajtására rendelkezésre áll, a futási felhívja a módszer Format. Ez továbbítja az értéket az elem formázási eljárással formatString (ha jelen van), vagy egy értéket null (annak hiányában), együtt végrehajtása IFormatProvider.

Ha az érték a végrehajtási IFormattable felület. nevezett toString (String, IFormatProvider) módszere, hogy a felület. Módszer továbbított formatString értékre (ha létezik az elem formázása) vagy egy érték null (ennek hiányában). IFormatProvider érv meghatározása a következő:

A számokhoz, ha a módszer az úgynevezett kompozit formázás érv IFormatProvider. nem egyenlő null, a futási kér NumberFormatInfo objektumot eljárás IFormatProvider.GetFormat. Ha nem tudja biztosítani a létesítmény, ha az argumentum null, vagy ha az összetett formázás módszer nem IFormatProvider paramétert. Ezt alkalmazzák NumberFormatInfo szálláshelyen nyelvi és területi beállításait az aktuális téma.

Dátum és idő, ha a módszer az úgynevezett kompozit formázás érv IFormatProvider. nem egyenlő null, a futási kér DateTimeFormatInfo objektumot eljárás IFormatProvider.GetFormat. Ha nem tudja biztosítani a létesítmény, ha az argumentum null, vagy ha az összetett formázás módszer nem IFormatProvider paramétert. Ezt alkalmazzák DateTimeFormatInfo szálláshelyen nyelvi és területi beállításait az aktuális téma.

A más típusú objektumok, ha az összetett formázás módszer az úgynevezett egy érv IFormatProvider. értéke (beleértve a null. IFormatProvider ha az objektum nincs megadva) közvetlenül adódik végrehajtásához IFormattable.ToString. Ellenkező esetben a CultureInfo objektumot. amely a nyelvi és területi beállítások az áram továbbításra kerül a megvalósítás IFormattable.ToString.

Úgynevezett toString eljárás paraméterek nélkül, amely felülírja Object.ToString (), vagy örökli a bázis osztály viselkedésének. Ebben az esetben a formátum string az említett alkatrész formatString formázási elemet (ha van), figyelmen kívül hagyja.

Végrehajtása után az előző lépések vonalban vannak.




Kapcsolódó cikkek