Aquí dejo un ejemplo de como personalizar el cast de nuestras clases a otras con implicit/explicit operator, por si nos interesa controlar la conversión.

Las clases:

public class ClassString

{

    public string value1 { get; set; }

    public string value2 { get; set; }

 

    public static implicit operator ClassInt(ClassString c2)

    {

        ClassInt c = new ClassInt

        {

            value1 = int.Parse(c2.value1),

            value2 = int.Parse(c2.value2)

        };

        return c;

    }

}

 

public class ClassInt

{

    public int value1 { get; set; }

    public int value2 { get; set; }

 

    public static explicit operator ClassString(ClassInt c2)

    {

        ClassString c = new ClassString

        {

            value1 = c2.value1.ToString(), 

            value2 = c2.value2.ToString()

        };

        return c;

    }                   

}

El test:

[TestMethod]

public void TestMethod1()

{

    ClassInt c1 = new ClassInt {value1 = 100,value2 = 200};

 

    ClassString c2 = (ClassString) c1;

    Assert.AreEqual(c2.value1, "100");

    Assert.AreEqual(c2.value2, "200");

 

    ClassInt c3 = c2;

    Assert.AreEqual(c3.value1, 100);

    Assert.AreEqual(c3.value2, 200);

}

Categories: , , ,

Leave a Reply


*

PUBLICIDAD

EMAIL





posts recientes

MapReduce con MongoDB

Posted on may - 18 - 2012

0 Comment

Habilitar la compresión de...

Posted on abr - 25 - 2012

0 Comment

Bamboo, MSBuild y referencias...

Posted on abr - 17 - 2012

2 Comments

Sponsors

  • Etooltech
  • Dingus Services
  • Etooltech
  • Dingus Services