Pergunta

Além da utilidade questionável a isso, eu gostaria de perguntar se é possível fazer algo ao longo destas linhas.

class MyPrimitive {
        String value;
        public String Value {
            get { return value; }
            set { this.value = value; }
        }
}

// Instead of doing this...
MyPrimitive a = new MyPrimitive();
a.Value = "test";
String b = a.Value;

// Isn't there a way to do something like this?
MyPrimitive a = "test";
String b = a;

Eu gosto de envolver tipos primitivos em classes personalizadas usando uma propriedade para fazer o método get e set realizar outras coisas, como validação.
Desde que eu estou fazendo isso muitas vezes eu pensei que seria bom ter também uma sintaxe mais simples, como para as primitivas padrão.
Ainda assim, eu suspeito que este não só não é viável, mas também poderia ser conceitualmente errado. Qualquer idéias seria muito bem-vinda, obrigado.

Outras dicas

Você pode usar conversão implícita . Não é recomendado, mas:

public static implicit operator string(MyString a) {
    return a.Value;
}
public static implicit operator MyString(string a) {
    return new MyString { value = a; }
}

Mais uma vez, má prática.

scroll top