using System;
namespace Articulos.Preguntas
{
// Definición estructura para la entidad `Punto`:
public struct EstructuraPunto
{
public int x;
public int y;
public EstructuraPunto( int x, int y)
{
this.x = x;
this.y = y;
}
}
// Define la clase para la entidad `Punto`:
public class ClasePunto
{
public int x;
public int y;
public ClasePunto( int x, int y)
{
this.x = x;
this.y = y;
}
}
public sealed class EstructuraVsClase
{
public static void Main( )
{
EstructuraPunto estructuraPunto = new EstructuraPunto( ) ;
estructuraPunto.x = 11 ;
estructuraPunto.y = 11 ;
Console.WriteLine ( "\n Valores iniciales de la estructura son: x = {0}, y = {1}" ,
estructuraPunto.x .ToString ( ) , estructuraPunto.y .ToString ( ) ) ;
ModificacionEstructuraPunto( estructuraPunto) ;
Console.WriteLine ( "Después de invocar `ModificacionEstructuraPunto`, los valores de la estructura son: x = {0}, y = {1}" ,
estructuraPunto.x .ToString ( ) , estructuraPunto.y .ToString ( ) ) ;
Console.WriteLine ( ) ;
ClasePunto clasePunto = new ClasePunto( 11 , 11 ) ;
Console.WriteLine ( "\n Valores iniciales de la clase son: x = {0}, y = {1}" ,
clasePunto.x .ToString ( ) , clasePunto.y .ToString ( ) ) ;
ModificacionClasePunto( clasePunto) ;
Console.WriteLine ( "Después de invocar `ModificacionClasePunto`, los valores de la clase son: x = {0}, y = {1}" ,
clasePunto.x .ToString ( ) , clasePunto.y .ToString ( ) ) ;
Console.WriteLine ( ) ;
}
static void ModificacionEstructuraPunto ( EstructuraPunto punto)
{
punto.x = 19 ;
punto.y = 19 ;
Console.WriteLine ( "\n Método `ModificacionEstructuraPunto`" ) ;
Console.WriteLine ( "Los valores modificados del parámetro `punto`: x = {0}, y = {1}" , punto.x .ToString ( ) , punto.y .ToString ( ) ) ;
}
static void ModificacionClasePunto( ClasePunto punto)
{
punto.x = 19 ;
punto.y = 19 ;
Console.WriteLine ( "\n Método `ModificacionClasePunto`" ) ;
Console.WriteLine ( "Los valores modificados del parámetro `punto`: x = {0}, y = {1}" , punto.x .ToString ( ) , punto.y .ToString ( ) ) ;
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIEFydGljdWxvcy5QcmVndW50YXMKewogICAgLy8gRGVmaW5pY2nDs24gZXN0cnVjdHVyYSBwYXJhIGxhIGVudGlkYWQgYFB1bnRvYDoKICAgIHB1YmxpYyBzdHJ1Y3QgRXN0cnVjdHVyYVB1bnRvCiAgICB7CiAgICAgICAgcHVibGljIGludCB4OwogICAgICAgIHB1YmxpYyBpbnQgeTsKICAgICAgICAKICAgICAgICBwdWJsaWMgRXN0cnVjdHVyYVB1bnRvKGludCB4LCBpbnQgeSkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMueCA9IHg7CiAgICAgICAgICAgIHRoaXMueSA9IHk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBEZWZpbmUgbGEgY2xhc2UgcGFyYSBsYSBlbnRpZGFkIGBQdW50b2A6CiAgICBwdWJsaWMgY2xhc3MgQ2xhc2VQdW50bwogICAgewogICAgICAgIHB1YmxpYyBpbnQgeDsKICAgICAgICBwdWJsaWMgaW50IHk7CiAgICAgICAgCiAgICAgICAgcHVibGljIENsYXNlUHVudG8oaW50IHgsIGludCB5KQogICAgICAgIHsKICAgICAgICAgICAgdGhpcy54ID0geDsKICAgICAgICAgICAgdGhpcy55ID0geTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgRXN0cnVjdHVyYVZzQ2xhc2UKICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICAgICAgewogICAgICAgICAgICBFc3RydWN0dXJhUHVudG8gZXN0cnVjdHVyYVB1bnRvID0gbmV3IEVzdHJ1Y3R1cmFQdW50bygpOwogICAgICAgICAgICBlc3RydWN0dXJhUHVudG8ueCA9IDExOwogICAgICAgICAgICBlc3RydWN0dXJhUHVudG8ueSA9IDExOwogICAgICAgICAgICAKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlxuVmFsb3JlcyBpbmljaWFsZXMgZGUgbGEgZXN0cnVjdHVyYSBzb246IHggPSB7MH0sIHkgPSB7MX0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXN0cnVjdHVyYVB1bnRvLnguVG9TdHJpbmcoKSwgZXN0cnVjdHVyYVB1bnRvLnkuVG9TdHJpbmcoKSk7CiAgICAgICAgICAgIE1vZGlmaWNhY2lvbkVzdHJ1Y3R1cmFQdW50byhlc3RydWN0dXJhUHVudG8pOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRGVzcHXDqXMgZGUgaW52b2NhciBgTW9kaWZpY2FjaW9uRXN0cnVjdHVyYVB1bnRvYCwgbG9zIHZhbG9yZXMgZGUgbGEgZXN0cnVjdHVyYSBzb246IHggPSB7MH0sIHkgPSB7MX0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXN0cnVjdHVyYVB1bnRvLnguVG9TdHJpbmcoKSwgZXN0cnVjdHVyYVB1bnRvLnkuVG9TdHJpbmcoKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgICAgICAKICAgICAgICAgICAgQ2xhc2VQdW50byBjbGFzZVB1bnRvID0gbmV3IENsYXNlUHVudG8oMTEsIDExKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIlxuVmFsb3JlcyBpbmljaWFsZXMgZGUgbGEgY2xhc2Ugc29uOiB4ID0gezB9LCB5ID0gezF9IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNlUHVudG8ueC5Ub1N0cmluZygpLCBjbGFzZVB1bnRvLnkuVG9TdHJpbmcoKSk7CiAgICAgICAgICAgIE1vZGlmaWNhY2lvbkNsYXNlUHVudG8oY2xhc2VQdW50byk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJEZXNwdcOpcyBkZSBpbnZvY2FyIGBNb2RpZmljYWNpb25DbGFzZVB1bnRvYCwgbG9zIHZhbG9yZXMgZGUgbGEgY2xhc2Ugc29uOiB4ID0gezB9LCB5ID0gezF9IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNlUHVudG8ueC5Ub1N0cmluZygpLCBjbGFzZVB1bnRvLnkuVG9TdHJpbmcoKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBzdGF0aWMgdm9pZCBNb2RpZmljYWNpb25Fc3RydWN0dXJhUHVudG8gKEVzdHJ1Y3R1cmFQdW50byBwdW50bykKICAgICAgICB7CiAgICAgICAgICAgIHB1bnRvLnggPSAxOTsKICAgICAgICAgICAgcHVudG8ueSA9IDE5OwogICAgICAgICAgICAKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUgKCJcbk3DqXRvZG8gYE1vZGlmaWNhY2lvbkVzdHJ1Y3R1cmFQdW50b2AiKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUgKCJMb3MgdmFsb3JlcyBtb2RpZmljYWRvcyBkZWwgcGFyw6FtZXRybyBgcHVudG9gOiB4ID0gezB9LCB5ID0gezF9IiwgcHVudG8ueC5Ub1N0cmluZygpLCBwdW50by55LlRvU3RyaW5nKCkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBzdGF0aWMgdm9pZCBNb2RpZmljYWNpb25DbGFzZVB1bnRvKENsYXNlUHVudG8gcHVudG8pCiAgICAgICAgewogICAgICAgICAgICBwdW50by54ID0gMTk7CiAgICAgICAgICAgIHB1bnRvLnkgPSAxOTsKICAgICAgICAgICAgCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiXG5Nw6l0b2RvIGBNb2RpZmljYWNpb25DbGFzZVB1bnRvYCIpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSAoIkxvcyB2YWxvcmVzIG1vZGlmaWNhZG9zIGRlbCBwYXLDoW1ldHJvIGBwdW50b2A6IHggPSB7MH0sIHkgPSB7MX0iLCBwdW50by54LlRvU3RyaW5nKCksIHB1bnRvLnkuVG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgfQp9
stdout
Valores iniciales de la estructura son: x = 11, y = 11
Método `ModificacionEstructuraPunto`
Los valores modificados del parámetro `punto`: x = 19, y = 19
Después de invocar `ModificacionEstructuraPunto`, los valores de la estructura son: x = 11, y = 11
Valores iniciales de la clase son: x = 11, y = 11
Método `ModificacionClasePunto`
Los valores modificados del parámetro `punto`: x = 19, y = 19
Después de invocar `ModificacionClasePunto`, los valores de la clase son: x = 19, y = 19