小编kle*_*npa的帖子

将字符串转换为字符串的泛型类型

我正在编写一个方法来进行智能类型转换 - 如果类型参数恰好是一个字符串,则使用ToString(),否则转换,但如果转换不起作用则返回null.基本上可以从中获取尽可能多的信息v而不会抛出异常.

我在尝试演员之前检查T确实是一个string,但编译器仍然不是粉丝:

Cannot convert type 'string' to 'T'
Run Code Online (Sandbox Code Playgroud)

这是我的方法:

public T? Convert<T>(object v)
{
    if (typeof(T) == typeof(string)) {
    return (T)v.ToString(); // Cannot convert type 'string' to 'T'  
    } else try {
      return (T)v;
    } catch (InvalidCastException) {
    return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果这是某种不可饶恕的罪,请告诉我.我用它来处理一些可能有混合类型的数据结构.

c# string generics casting

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

casting ×1

generics ×1

string ×1