class Thing
{
public static explicit operator string(Thing thing)
{
return thing.ToString();
}
public override string ToString()
{
return "Thing";
}
}
public class One
{
static void Main(string[] args)
{
object o,o1;
string s = "text";
int n = 5;
Thing t = new Thing(); o = t;
Trace.Assert(t is Thing);
Trace.Assert(((string)t) == "Thing");
Trace.Assert(o is Thing);
Trace.Assert(o is object);
Console.WriteLine("o content:{0}",(string)o);
请问各位,o和t都是Ting类型的,为何红色标注的可以转换,但蓝色却不能呢?
{
public static explicit operator string(Thing thing)
{
return thing.ToString();
}
public override string ToString()
{
return "Thing";
}
}
public class One
{
static void Main(string[] args)
{
object o,o1;
string s = "text";
int n = 5;
Thing t = new Thing(); o = t;
Trace.Assert(t is Thing);
Trace.Assert(((string)t) == "Thing");
Trace.Assert(o is Thing);
Trace.Assert(o is object);
Console.WriteLine("o content:{0}",(string)o);
请问各位,o和t都是Ting类型的,为何红色标注的可以转换,但蓝色却不能呢?
解决方案 »
- sqlserver的数据库连接时候设置timeout有什么作用?
- 这个错误怎么解决
- 实例构造函数和静态构造函数啥区别?最好举例
- 如何在void Page_Load()自动触发或执行btn_onclick事件。谢谢
- 哪位 有 sql server 调用 .net 中 非静态方法 的方法?
- 请问,使用System.Web.Mail.MailMessage发送邮件对于body部分如何定制?急!
- 请问个简单的问题 C#如何将类按值负值
- web窗体之间能不能相互引用?
- 怎样把整数1格式成为L0000001
- 请大家帮我看这个c#的数据库code 有什么问题???
- .vshowt.exe和.vshost.exe.manifest 是什么文件呀?
- C#中使用键盘钩子的问题
Console.WriteLine("o content:{0}", (string)(Thing)o);
蓝色部分返回的一个对象, 当然, 从根向子类转,当然要提示了。这个代码是可以通过的。 object obj = null;
if ((string)obj == "xxx") {
}
但o声明是object类型的 虽然它指向的对象是Thing类型的 (Thing)o也无法完成转换