不能将类型'X'隐式转换为'字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

不能将类型'X'隐式转换为'字符串吗?

我的意思是,类型方法Guid.ToString()是存在的,是不是在需要这种转换时调用?

在什么情况下自动完成这种转换,以及何时必须myInstance.ToString()明确地调用?

提问于
用户回答回答于

当定义了一个隐式或显式转换运算符时:

class WithImplicit {
    public static implicit operator string(WithImplicit x) {
        return x.ToString();}
}
class WithExplicit {
    public static explicit operator string(WithExplicit x) {
        return x.ToString(); }
}
class WithNone { }

class Program {
    static void Main() {
        var imp = new WithImplicit();
        var exp = new WithExplicit();
        var none = new WithNone();
        string s1 = imp;
        string s2 = (string)exp;
        string s3 = none.ToString();
    } 
}
用户回答回答于

没有从GUIDto 隐式转换String,所以在代码中根本无法工作。

它只适用于存在明确转换的地方,但转换可能不会很明显。例如,当你连接字符串时:

string id = "--" + guidValue + " : " + num;

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券