c#中结构的转化示例

c#中结构的转化示例

structconversion.cs
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;
        
// Perform a conversion from a RomanNumeral to a
        
// BinaryNumeral:
        binary = (BinaryNumeral)(int)roman;
        
// Performs a conversion from a BinaryNumeral to a RomanNumeral.
        
// No cast is required:
        roman = binary;
        Console.WriteLine((
int)binary);
        Console.WriteLine(binary);
    }

}

posted @ 2007-12-29 08:20  邀月  阅读(398)  评论(0编辑  收藏  举报