TypeConverter ConvertFrom 转换所有类型,包含枚举 泛型和颜色 字体属性
时间: 2024-02-20 17:57:13 浏览: 94
TypeConverter是C#中一个非常有用的工具类,它可以将一个类型转换成另一个类型。ConvertFrom方法是TypeConverter类中的一个方法,可以将一个字符串表示的值转换成目标类型。下面是一个示例代码,演示了如何使用TypeConverter和ConvertFrom方法将字符串转换成枚举、泛型、颜色和字体属性:
```csharp
using System;
using System.ComponentModel;
using System.Drawing;
class Program
{
static void Main(string[] args)
{
// 将字符串转换成枚举类型
string enumValue = "Red";
Color color = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFrom(enumValue);
Console.WriteLine(color);
// 将字符串转换成泛型类型
string genericValue = "123";
int number = (int)TypeDescriptor.GetConverter(typeof(int)).ConvertFrom(genericValue);
Console.WriteLine(number);
// 将字符串转换成颜色类型
string colorValue = "255,0,0";
Color color2 = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFrom(colorValue);
Console.WriteLine(color2);
// 将字符串转换成字体类型
string fontValue = "Arial, 12pt";
Font font = (Font)TypeDescriptor.GetConverter(typeof(Font)).ConvertFrom(fontValue);
Console.WriteLine(font.Name + ", " + font.Size);
}
}
```
在上述代码中,我们首先使用TypeDescriptor获取Color、int、Font类的TypeConverter,并使用ConvertFrom方法将字符串转换成相应的类型。需要注意的是,在将字符串转换成泛型类型时,需要将字符串表示的值与目标类型的类型参数匹配。如果类型不匹配,将会抛出异常。
阅读全文