C#如何定义与类或结构之间的转换的代码

下边资料是关于C#如何定义与类或结构之间的转换的代码。

 


using System;

struct RomanNumeral
{
public RomanNumeral(int value)
{
this.value = value;
}
static public implicit operator RomanNumeral(int value)
{
return new RomanNumeral(value);
}
static public explicit operator int(RomanNumeral roman)
{
return roman.value;
}
static public implicit operator string(RomanNumeral roman)
{
return("Conversion not yet implemented");
}
private int value;
}

class Test
{
static public void Main()
{
RomanNumeral numeral;

numeral = 10;

Console.WriteLine((int)numeral);

Console.WriteLine(numeral);

short s = (short)numeral;

Console.WriteLine(s);
}
}

 

 







using System;

struct RomanNumeral
{
public RomanNumeral(int value)
{
this.value = value;
}
static public implicit operator RomanNumeral(int value)
{
return new RomanNumeral(value);
}
static public implicit operator RomanNumeral(BinaryNumeral binary)
{
return new RomanNumeral((int)binary);
}
static public explicit operator int(RomanNumeral roman)
{
return roman.value;
}
static public implicit operator string(RomanNumeral roman)
{
return("Conversion not yet implemented");
}
private int value;
}

struct BinaryNumeral
{
public BinaryNumeral(int value)
{
this.value = value;
}
static public implicit operator BinaryNumeral(int value)
{
return new BinaryNumeral(value);
}
static public implicit operator string(BinaryNumeral binary)
{
return("Conversion not yet implemented");
}
static public explicit operator int(BinaryNumeral binary)
{
return(binary.value);
}

private int value;
}

class Test
{
static public void Main()
{
RomanNumeral roman;
roman = 10;
BinaryNumeral binary;
binary = (BinaryNumeral)(int)roman;
roman = binary;
Console.WriteLine((int)binary);
Console.WriteLine(binary);
}
}




 

C#如何定义与类或结构之间的转换的代码

上一篇:前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能


下一篇:windows和linux修改ipv6和ipv4的优先级