您的位置:首页 > 编程语言 > C#

C# 转换运算符:implicit(隐式),explicit(显示)

2016-11-17 15:41 387 查看
//A类
class Cls1
{
public string name;

//构造函数
public Cls1(string name)
{
this.name = name;
}

//implicit:表示隐式转换,如从 B -> A 只需直接赋值(A = B)
//此处将:A对象隐式转换为B对象
public static implicit operator Cls2(Cls1 value)
{
return new Cls2(value.name + " 变 B");
}
}

//妖怪类
class Cls2
{
public string name;

//构造函数
public Cls2(string name)
{
this.name = name;
}

//explicti:表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A)
//此处将:B对象显示转换为A对象
public static explicit operator Cls1(Cls2 value)
{
return new Cls1(value.name + " 变 A");
}
}

class Program
{
//程序入口
static void Main(string[] args)
{
//隐式转换:A变B
Cls2 cls2 = new Cls1("A");
Console.WriteLine(cls2.name);    //输出:A,变B

//显示转换:B变A
Cls1 cls1 = (Cls1)new Cls2("B");
Console.WriteLine(cls1.name);     //输出:B,变A
Console.ReadLine();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: