跳转到内容

.NET 开发基础/全球化

来自 Wikibooks,为开放世界提供开放书籍


全球化、绘图和文本操作


全球化、绘图和文本操作

[编辑 | 编辑源代码]

考试目标:在 .NET Framework 应用程序中实现全球化、绘图和文本操作功能

全球化

[编辑 | 编辑源代码]

文本操作

[编辑 | 编辑源代码]

在考试目标的背景下,文本操作涵盖 3 个主要主题:字符串构建、正则表达式和文本编码。我们在以下段落中分别探讨它们。

String 和 StringBuilder 类
[编辑 | 编辑源代码]

文本操作从字符串的表示开始,这通过 String 类 完成。没有特定的考试目标提到 String 类,但我们添加了一个关于它的部分,因为你必须了解它的一些特定特性。

接下来是 StringBuilder 类,它用于高效的构造。

正则表达式
[编辑 | 编辑源代码]

RegexMatchGroup 类一起在 .NET 框架中实现正则表达式支持。

正则表达式本身就是一个世界,并且已经存在相当长的时间了。

有一本关于 正则表达式 的维基教科书,其中,除其他事项外,还指出了 本教程

.NET 中的正则表达式支持基本上允许

  • 测试字符串与正则表达式模式的匹配(Regex.IsMatch 方法)
  • 提取与模式一部分“匹配”的子字符串(带有 Match 和 Group 类的 Regex.Match 方法)。
文本编码
[编辑 | 编辑源代码]

类、接口和工具

[编辑 | 编辑源代码]

根据文化信息格式化数据。

[编辑 | 编辑源代码]

(参考 System.Globalization 命名空间)

访问文化和区域信息
[编辑 | 编辑源代码]

考试目标:在 .NET Framework 应用程序中访问文化和区域信息

CultureInfo 类 - MSDN

CultureTypes 枚举 - MSDN

RegionInfo 类 - MSDN

根据文化格式化日期和时间值。
[编辑 | 编辑源代码]

DateTimeFormatInfo 类 - MSDN

根据文化格式化数字值。
[编辑 | 编辑源代码]

NumberFormatInfo 类 - MSDN

NumberStyles 枚举 - MSDN

执行文化敏感的字符串比较。
[编辑 | 编辑源代码]

CompareInfo 类 - MSDN

CompareOptions 枚举 - MSDN

自定义文化
[编辑 | 编辑源代码]

考试目标:基于现有的文化和地区类构建自定义文化类

CultureAndRegionInfoBuilder 类 - MSDN

CultureAndRegionModifier 枚举 - MSDN

System.Drawing 命名空间

[编辑 | 编辑源代码]

考试目标:通过使用 System.Drawing 命名空间来增强 .NET Framework 应用程序的用户界面。

画刷、笔、颜色和字体
[编辑 | 编辑源代码]

考试目标:通过使用画刷、笔、颜色和字体来增强 .NET Framework 应用程序的用户界面

Brush 类 - MSDN

Brushes 类 - MSDN

SystemBrushes 类 - MSDN

TextureBrush 类 - MSDN

Pen 类 - MSDN

Pens 类 - MSDN

SystemPens 类 - MSDN

SolidBrush 类 - MSDN

Color 结构 - MSDN

ColorConverter 类 - MSDN

ColorTranslator 类 - MSDN

SystemColors 类 - MSDN

StringFormat 类 - MSDN

Font 类 - MSDN

FontConverter 类 - MSDN

FontFamily 类 - MSDN

SystemFonts 类 - MSDN

图形、图像、位图和图标
[编辑 | 编辑源代码]

考试目标:通过使用图形、图像、位图和图标来增强 .NET Framework 应用程序的用户界面

Graphics 类 - MSDN

BufferedGraphics 类 - MSDN

BufferedGraphicsManager 类 - MSDN

Image 类 - MSDN

ImageConverter 类 - MSDN

ImageAnimator 类 - MSDN

Bitmap 类 - MSDN

Icon 类 - MSDN

IconConverter 类 - MSDN

SystemIcons 类 - MSDN

形状和尺寸
[编辑 | 编辑源代码]

考试目标:通过使用形状和尺寸来增强 .NET Framework 应用程序的用户界面

Point 结构 - MSDN

PointConverter 类 - MSDN

Rectangle 结构 - MSDN

RectangleConverter 类 - MSDN

Size 结构 - MSDN

SizeConverter 类 - MSDN

Region 类 - MSDN

文本处理和正则表达式

[编辑 | 编辑源代码]

考试目标:增强 .NET Framework 应用程序的文本处理功能,并通过使用正则表达式来搜索、修改和控制 .NET Framework 应用程序中的文本

(参考 System.Text 命名空间)

(参考 System.RegularExpressions 命名空间)

String 类
[编辑 | 编辑源代码]

String 类不是具体的考试目标,但它被添加是为了讨论一些它的特性。

String 类 - MSDN

StringBuilder 类
[编辑 | 编辑源代码]

StringBuilder 类用于非常快的字符串连接。如果你使用传统的字符串连接,它会运行得很慢,因为字符串被保存在数组中。每次连接都会导致数组增加其大小,并且内存必须在内部复制到新位置。这非常慢。

为了进行快速的字符串连接,请使用 StringBuilder。它大约快 1000 倍(取决于你连接的字符串)。

StringBuilder 类 - MSDN


请参考示例来衡量性能差异。

C# 示例

StringBuilder 示例

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 类
[编辑 | 编辑源代码]

Regex 类 - MSDN

Match 类和 MatchCollection 类
[编辑 | 编辑源代码]

Match 类 - MSDN

MatchCollection 类 - MSDN

Group 类和 GroupCollection 类
[编辑 | 编辑源代码]

Group 类 - MSDN

GroupCollection 类 - MSDN

使用 Encoding 类对文本进行编码
[编辑 | 编辑源代码]

Encoding 类 - MSDN

EncodingInfo 类 - MSDN

ASCIIEncoding 类 - MSDN

UnicodeEncoding 类 - MSDN

UTF8Encoding 类 - MSDN

编码回退类 - MSDN

使用解码类解码文本。
[编辑 | 编辑源代码]

Decoder 类 - MSDN

Decoder 回退类 - MSDN

Capture 类和 CaptureCollection 类
[编辑 | 编辑源代码]

Capture 类 - MSDN

CaptureCollection 类 - MSDN


上一个

华夏公益教科书