- 类型转换分为显式类型转换和隐式类型转换,分别对应关键字explicit和implicit,后面加上关键字operator。
- 实现类型转换的方法必须是public static的,且放在被转换的类中。
using System;
namespace _06
{
class Program
{
static void Main(string[] args)
{
Test1 test1 = new Test1(1);
Console.WriteLine("*****测试显式转换*****");
Test2 test2 = (Test2)test1;
Console.WriteLine($"test2.value = {test2.value}");
Console.WriteLine();
Console.WriteLine("*****测试显式转换*****");
Test3 test3 = test1;
Console.WriteLine($"test3.value = {test3.value}");
Console.WriteLine();
}
}
class Test1
{
public int value;
public Test1(int value)
{
this.value = value;
}
public static explicit operator Test2(Test1 test1)
{
return new Test2(test1.value + 1);
}
public static implicit operator Test3(Test1 test1)
{
return new Test3(test1.value + 2);
}
}
class Test2
{
public int value;
public Test2(int value)
{
this.value = value;
}
}
class Test3
{
public int value;
public Test3(int value)
{
this.value = value;
}
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/55619c6ed7864baa9a99b4b44f7b272d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Zi_6LSi57un57ut5Yqq5Yqb,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)