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

Codigo com Erro.

Boa tarde, meu código esta com um erro. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

eu olhei um post anterior mais não consegui resolver, não entendi a parte do internal

6 respostas

Eduardo,

A definição não é de Cliente como propriedade?

public Cliente Titular { get; set; }

[]'s,

Fabio I.

Então eu segui de acordo com o que foi passado, e está exatamente igual ao do André.

Eduardo,

Pode me mostrar o código e o vídeo que você viu ele fazendo isso? Quero reproduzir aqui na minha máquina.

[]'s,

Fabio I.

Olá Eduardo, tudo bem?

Você adicionou a referência do namespace? Pode postar a codificação da sua classe para entendermos melhor?

No aguardo!

Clente.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ByteBank
{
    internal class Cliente
    {
        public string nome;
        public string cpf;
        public string profissao;
    }
}

Conta Corrente.cs:

 using System.Threading.Channels;

namespace ByteBank
{
    public class ContaCorrente
    {
        public int numero_agencia;
        public string conta;
        public double saldo = 100;
        public Cliente titular;

solução!

Eduardo,

Agora eu acho que entendi. O problema é no modificado de acesso "internal", basta trocar para "public" que permite mais acesso, pois o erro deve ser esse:

  • Gravidade: Erro
  • Código: CS0051
  • Descrição: Acessibilidade inconsistente: tipo de parâmetro "Cliente" é menos acessível do que o método "Conta Corrente"
  • Projeto:ByteBank
  • Arquivo: ContaCorrente.cs
  • Linha: 66
  • Estado de Supressão: Ativo

O modificador "public" deixa o código mais acessível que o modificador "internal", abaixo colocarei um texto e um link explicando o problema.

==========================================================

C# - modificadores de acesso

No C# os modificadores de acesso mais utilizados são:

  • public: acessível de qualquer ponto do código, ou seja não impõe restrições;
  • private: acessível somente dentro do contexto onde foi declarado, ou seja, um membro privado dentro de uma classe só é acessível dentro da própria classe;
  • protected: o elemento é acessível dentro da classe e suas derivadas;
  • internal: é o padrão no C#. Caso nenhum modificador seja declarado, definirá a acessibilidade do elemento dentro do executável ou dll onde foi declarado;
  • protected internal: é proveniente união dos modificadores protected e internal.

==========================================================

Modificadores de acesso (Guia de Programação em C#)

Artigo - 22/09/2022 - 5 minutos para o fim da leitura

Todos os tipos e membros de tipo têm um nível de acessibilidade. O nível de acessibilidade controla se eles podem ser usados em outro código no assembly ou em outros assemblies. Um assembly é um .dll ou .exe criado ao selecionar um ou mais arquivos .cs em uma única compilação. Use os modificadores de acesso a seguir para especificar a acessibilidade de um tipo ou membro quando você o declarar:

  • public: o tipo ou membro pode ser acessado por qualquer outro código no mesmo assembly ou em outro assembly que faz referência a ele. O nível de acessibilidade de membros públicos de um tipo é controlado pelo nível de acessibilidade do próprio tipo.
  • private: o tipo ou membro pode ser acessado somente pelo código na mesma class ou struct.
  • protected: o tipo ou membro pode ser acessado somente pelo código na mesma class ou em uma class derivada dessa class.
  • internal: o tipo ou membro pode ser acessado por qualquer código no mesmo assembly, mas não de outro assembly. Em outras palavras, tipos ou membros internal podem ser acessados no código que faz parte da mesma compilação.
  • protected internal: o tipo ou membro pode ser acessado por qualquer código no assembly no qual ele é declarado ou de uma class derivada em outro assembly.
  • private protected: o tipo ou membro pode ser acessado por tipos derivados do class, que são declarados no assembly relativo.

https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

===============================================================

[]'s,

Fabio I.