using System;
public class Program { public static void Main() {} }
public class Pessoa : ICloneable {
public string Nome;
public Pessoa Conjuge;
public object Clone() {
var p = new Pessoa();
p.Nome = Nome;
if (Conjuge != null) p.Conjuge = (Pessoa)Conjuge.Clone();
return p;
}
}
public class Pessoa2 : ICloneable {
public string Nome;
public Pessoa2 Conjuge;
public object Clone() => MemberwiseClone();
}
//https://pt.stackoverflow.com/q/156883/101
dXNpbmcgU3lzdGVtOwoJCQkJCQpwdWJsaWMgY2xhc3MgUHJvZ3JhbSB7IHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkge30gfQoKcHVibGljIGNsYXNzIFBlc3NvYSA6IElDbG9uZWFibGUgewogICAgcHVibGljIHN0cmluZyBOb21lOwogICAgcHVibGljIFBlc3NvYSBDb25qdWdlOwogICAgcHVibGljIG9iamVjdCBDbG9uZSgpIHsKICAgICAgICB2YXIgcCA9IG5ldyBQZXNzb2EoKTsKICAgICAgICBwLk5vbWUgPSBOb21lOwoJICAgIGlmIChDb25qdWdlICE9IG51bGwpIHAuQ29uanVnZSA9IChQZXNzb2EpQ29uanVnZS5DbG9uZSgpOwogICAgICAgIHJldHVybiBwOwogICAgfQp9CgpwdWJsaWMgY2xhc3MgUGVzc29hMiA6IElDbG9uZWFibGUgewogICAgcHVibGljIHN0cmluZyBOb21lOwogICAgcHVibGljIFBlc3NvYTIgQ29uanVnZTsKICAgIHB1YmxpYyBvYmplY3QgQ2xvbmUoKSA9PiBNZW1iZXJ3aXNlQ2xvbmUoKTsKfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTU2ODgzLzEwMQ==