Ir para conteúdo
Fórum Script Brasil
  • 0

Não To Conseguindo Criar Objeto.


Denis Bittencourt Muniz

Pergunta

Fala galera!

Tenho o código abaixo:

/*

 * Autor: Denis Bittencourt
 * Data: 29/11/2005
 * Hora: 20:37

*/

using System;

namespace Teste {

	public class A {
  
  public  int Numero;
  public static int CNumero = 8;
  public const int CONumero = 9;
  
	}

	public class B {
  
  public static void Main() {
  	A T = new A();
  	Console.Write(T.CONumero.ToString() + "\n");
  }
	}
}

Pergunto: Por que não estou conseguindo usar o campo 'CONumero' do objeto 'T'?

Erro gerado:

e:\Denis\Teste.cs(25,18): error CS0246: The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?)

e:\Denis\Teste.cs(25,18): error CS0176: Static member 'A.CONumero' cannot be accessed with an instance reference; qualify it with a type name instead

Espero respostas : )!

Falows!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Fala galera!

Tenho o código abaixo:

/*

 * Autor: Denis Bittencourt
 * Data: 29/11/2005
 * Hora: 20:37

*/

using System;

namespace Teste {

	public class A {
  
  public  int Numero;
  public static int CNumero = 8;
  public const int CONumero = 9;
  
	}

	public class B {
  
  public static void Main() {
  	A T = new A();
  	Console.Write(T.CONumero.ToString() + "\n");
  }
	}
}
Pergunto: Por que não estou conseguindo usar o campo 'CONumero' do objeto 'T'? Erro gerado:
e:\Denis\Teste.cs(25,18): error CS0246: The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?) e:\Denis\Teste.cs(25,18): error CS0176: Static member 'A.CONumero' cannot be accessed with an instance reference; qualify it with a type name instead
Espero respostas : )! Falows!
Diferentemente do VB.NET, C# não permite a utilização de métodos, propriedades e campos estáticos através dos objetos. Ou seja, você é obrigado a utilizar a classe ao invés de um objeto, ao tentar se referir a membros estáticos. No caso, você teria que fazer:
Console.Write(A.CONumero.ToString() + "\n");

No VB.NET sua idéia seria perfeitamente válida, mas em C# não. Aliás, eu já tinha comentado sobre essa diferença entre C# e VB.NET em um outro post.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Meio "prosa ruim" esse conceito do C#, mas isso não faz diferença, pois campos estáticos são compartilhados por todos objetos (assim, usando a classe invés do objeto não faz diferença). O mesmo vale para campos constantes, mas o conceito já é outro, pois campos constantes não mudam valor.

Bom, regra é regra!

valeu Graymalkin!

Link para o comentário
Compartilhar em outros sites

  • 0
Meio "prosa ruim" esse conceito do C#, mas isso não faz diferença, pois campos estáticos são compartilhados por todos objetos (assim, usando a classe invés do objeto não faz diferença). O mesmo vale para campos constantes, mas o conceito já é outro, pois campos constantes não mudam valor.

Bom, regra é regra!

Exatamente, mas nesse caso eles nem parece que são "compartilhados". biggrin.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...