Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

get dentro do método

Não entendi o motivo de usar um get dentro do método

public bool PodeAbrirContaSozinho
{
    get
    {
        return (this.idade >= 18 || 
        this.documentos.contains("emancipacao")) && 
        !string.IsNullOrEmpty(this.cpf);
    }
}
3 respostas
solução!

Eu não estou fazendo este curso no momento então estou sem o contexto, mas o PodeAbrirContaSozinho na verdade não é um método e sim uma property de uma classe.

As properties são usadas para prover encapsulamento, já que o estado das variáveis privadas correspondentes (quando houverem) poderão ser manipulados somente através da property e seus gets e sets. Quando não há uma propriedade privada equivalente, você está usando o recurso chamado auto property da linguagem.

A sintaxe de uma property...

public int Idade { get; set; }

<modificador-de-acesso> <tipo> <nome> { get; set; }

As porções get e set podem ter opcionalmente um bloco de código especificando como elas serão obtidas(get) ou definidas(set).

Quando elas possuem um bloc de código, você pode adicionar validações e regras para obtenção ou definição dos valores, caso contrário, sua propriedade será simplesmente acessível pelas classes externas de acordo com os modificadores de acesso.

Complementando, para ficar mais claro, alguns exemplos:

EXEMPLO 1

A saída no console será 10

public class Pessoa 
{
    public int Idade {get;set;}
}

public class Program
{
    public static void Main(string[] args)
    {
        Pessoa p = new Pessoa();
        p.Idade = 10; // Utiliza o **set** para definir a propriedade.
        Console.WriteLine(p.Idade); //Utiliza o **get** para obter a idade.

    }
}

EXEMPLO 2

O método get retorna o valor da idade dobrado. O método set impede que idades negativas sejam atribuidas à pessoa.

public class Pessoa 
{
    private int idade;
    public int Idade {
        get
        {
            return idade * 2;
        }
        set
        {
            if (value < 0)
                value = 0;
            idade = value
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        Pessoa p = new Pessoa();
        p.Idade = 10; // Utiliza o **set** para definir a propriedade.
        Console.WriteLine(p.Idade); //Utiliza o **get** para obter a idade.

    }
}

Não é um método, é uma propriedade, esse link deve te ajudar a entender o conceito de propriedade https://msdn.microsoft.com/pt-br/library/x9fsa0sw.aspx