📜  c# type from string - C# (1)

📅  最后修改于: 2023-12-03 15:29:46.400000             🧑  作者: Mango

C# Type from String

在 C# 中,我们经常需要将字符串转换为其对应的类型。比如说,我们可能需要从用户输入的文本中获取一个整型值,然后对它进行计算。这时候就会用到类型转换。

基本类型转换

C# 中最基本的类型转换是将字符串转换为整数、浮点数等基本类型。这可以通过以下代码实现:

string str = "123";
int num = int.Parse(str);

需要注意的是,如果字符串不能被转换为指定类型,将会抛出异常。因此,在进行转换时应该先进行合法性判断。

枚举类型转换

枚举类型转换与基本类型转换类似,只不过需要指定枚举类型作为转换的目标类型。下面是示例代码:

enum Gender
{
    Male,
    Female
}

string str = "Male";
Gender gender = (Gender)Enum.Parse(typeof(Gender), str);

需要注意的是,由于枚举类型是静态类型,因此应该使用强制转换而非类型转换运算符。

自定义类型转换

在某些情况下,我们可能需要将字符串转换为自定义类型,比如说将一段 JSON 字符串转换为 C# 对象。这需要我们实现类型转换器。

C# 中的类型转换器是通过实现 ITypeConverter 接口来实现的。大致的代码结构如下:

public class MyTypeConverter : ITypeConverter<string, MyType>
{
    public MyType Convert(string source, MyType destination, ResolutionContext context)
    {
        // 进行转换操作
    }
}

需要注意的是,在进行自定义类型转换时,我们不能直接使用 Convert.ChangeType 方法,而是需要手动实现转换器。

总结

在 C# 中,我们可以使用基本类型转换、枚举类型转换和自定义类型转换来将字符串转换为目标类型。无论哪种转换方式,都需要进行合法性检查以保证转换操作的安全性。