.NET Development Foundation | |
---|---|
Exam objective:Implementing globalization, drawing, and text manipulation functionality in a .NET Framework application
Text manipulation, in the context of the exam objectives, covers 3 main subjects: string building, regular expressions and text encoding. We look at each in the following paragraphs.
Text manipulation starts with the representation of a string which is done via theString class. No specific exam objective mentions the String class but we added a section for it because you must understand some of its specific characteristics.
Next comes theStringBuilder class that serves for efficient construction.
![]() | Wikipedia has related information atRegular expressions |
TheRegex,Match andGroup classes together implement the regular expressions support in the .NET framework.
Regular expressions are a world by themselves and have been around for quite some time.
There is a wikibook onregular expressions which, among other things, point to thisTutorial.
Regular expressions support in .NET basically allows for:
(Refer System.Globalization namespace)
Exam objective:Access culture and region information in a .NET Framework application
CultureInfo class -MSDN
CultureTypes enumeration -MSDN
RegionInfo class -MSDN
DateTimeFormatInfo class -MSDN
NumberFormatInfo class -MSDN
NumberStyles enumeration -MSDN
CompareInfo class -MSDN
CompareOptions enumeration -MSDN
Exam objective:Build a custom culture class based on existing culture and region classes
CultureAndRegionInfoBuilder class -MSDN
CultureAndRegionModifier enumeration -MSDN
Exam objective:Enhance the user interface of a .NET Framework application by using the System.Drawing namespace.
Exam objective:Enhance the user interface of a .NET Framework application by using brushes, pens, colors, and fonts
Brush class -MSDN
Brushes class -MSDN
SystemBrushes class -MSDN
TextureBrush class -MSDN
Pen class -MSDN
Pens class -MSDN
SystemPens class -MSDN
SolidBrush class -MSDN
Color structure -MSDN
ColorConverter class -MSDN
ColorTranslator class -MSDN
SystemColors class -MSDN
StringFormat class -MSDN
Font class -MSDN
FontConverter class -MSDN
FontFamily class -MSDN
SystemFonts class -MSDN
Exam objective:Enhance the user interface of a .NET Framework application by using graphics, images, bitmaps, and icons
Graphics class -MSDN
BufferedGraphics class -MSDN
BufferedGraphicsManager class -MSDN
Image class -MSDN
ImageConverter class -MSDN
ImageAnimator class -MSDN
Bitmap class -MSDN
Icon class -MSDN
IconConverter class -MSDN
SystemIcons class -MSDN
Exam objective:Enhance the user interface of a .NET Framework application by using shapes and sizes
Point Structure -MSDN
PointConverter class -MSDN
Rectangle Structure -MSDN
RectangleConverter class -MSDN
Size Structure -MSDN
SizeConverter class -MSDN
Region class -MSDN
Exam objective:Enhance the text handling capabilities of a .NET Framework application, and search, modify, and control text in a .NET Framework application by using regular expressions
(Refer System.Text namespace)
(Refer System.RegularExpressions namespace)
The String class isnot a specific exam objective but was added to have a place to discuss some of its characteristics.
String class -MSDN
The StringBuilder class is used for very fast string concatenation. If you use conventional string concatenationthen it will run very slow because a string is held in an array. Each concatenation causes the array to increase its sizeand the memory has to be copied to a new location internally. This is very slow.
For fast string concatenations use StringBuilder instead. It is about 1000 times faster (depending on the stringyou concatenate).
StringBuilder class -MSDN
Refer to the example to measure the performance differences.
StringBuilder example
using System;using System.Collections;public class Demo{public static void Main() { const int len = 30; const int loops = 5000; // DateTime timeStart, timeStop; // // Measure time for normal string concatenation timeStart = DateTime.Now; string str = ""; for (int i = 0; i < loops; i++) { str += new String('x', len); } timeStop = DateTime.Now; int millis = timeStop.Subtract(timeStart).Milliseconds; Console.WriteLine("Duration for " + loops + " loops: " + millis + " ms"); // // Measure time for StringBuilder string concatenation StringBuilder sb = new StringBuilder(); timeStart = DateTime.Now; for (int i = 0; i < loops; i++) { sb.Append(new String('x', len)); } str = sb.ToString(); timeStop = DateTime.Now; millis = timeStop.Subtract(timeStart).Milliseconds; Console.WriteLine("Duration for " + loops + " loops: " + millis + " ms"); // Console.ReadLine(); }}
Regex class -MSDN
Match class -MSDN
MatchCollection class -MSDN
Group class -MSDN
GroupCollection class -MSDN
Encoding class -MSDN
EncodingInfo class -MSDN
ASCIIEncoding class -MSDN
UnicodeEncoding class -MSDN
UTF8Encoding class -MSDN
Encoding Fallback classes -MSDN
Decoder class -MSDN
Decoder Fallback classes -MSDN
Capture class -MSDN
CaptureCollection class -MSDN