[Duvida] Sobre Namespace
2 participantes
Página 1 de 1
[Duvida] Sobre Namespace
Recentemente eu tentei utilizar algo que nunca tentei utilizar antes que era o namespace pra facilitar a organização do código porem, por algum motivo eu não consigo acessar as variaveis de outra classe dentro do namespace próprio
ja tentei de varias formas herança,instancia,declarando, mas nenhuma da acesso a 1° classe, eu acho que to esqueçendo de algo mas se alguem puder ajudar eu agradeço
nem quando chamo o namespace em outro script ele me da acesso
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TPPS
{
public class CLASSE1
{
public int teste = 10;
}
//-----------------------------------------------------------
public class CLASSE2 : CLASSE1
{
}
//-----------------------------------------------------------
public class CLASSE3
{
}
//-----------------------------------------------------------
}
ja tentei de varias formas herança,instancia,declarando, mas nenhuma da acesso a 1° classe, eu acho que to esqueçendo de algo mas se alguem puder ajudar eu agradeço
nem quando chamo o namespace em outro script ele me da acesso
nibirou- MembroAvançado
- PONTOS : 2074
REPUTAÇÃO : 15
Áreas de atuação : C#,C++,produção de audio
Respeito as regras :
Re: [Duvida] Sobre Namespace
Para fazer acesso vc precisa instanciar a classe já que ela não é componente de Unity:
Para fazer acesso externo vc precisa incluir o namespace na declaração:
Ou usando a diretiva using:
Os namespaces são utilizados para reaproveitamento de códigos, servindo mesmo como uma biblioteca, assim como o Unity faz com Unity.Engine, onde sempre reaproveitamos classes dela (Monobehaviour, por exemplo), serve também para "unificar" dados de uma mesma aplicação, onde esses dados serão compartilhados em vários pontos do sistema como enumerações e delegates, por fim, também impendem o conflito de classes com mesmo nome, por exemplo, o Unity tem a classe Random, mas o .Net também possui essa classe. Para diferenciar os dois randoms, basta usar a biblioteca específica, como usamos Unity.Engine, estamos usando a classe Random desse namespace, mas se a gente também estiver usando a biblioteca System na aplicação, o namespace vai servir como sobrenome para diferenciar as classes com nomes iguais, assim:
System.Random é uma classe diferente de UnityEngine.Random, o namespace diferencia ambas, mesmo com nomes iguais.
Se não for o caso de nenhuma das necessidades acima, não há motivos para ser utilizar um namespace no código.
- Código:
CLASSE1 classe = new CLASSE1 ();
classe.teste = 1000;
Para fazer acesso externo vc precisa incluir o namespace na declaração:
- Código:
public class ClasseForaDoNameSpace{
TPPS.CLASSE1 classe = new TPPS.CLASSE1();
classe.teste = 450;
}
Ou usando a diretiva using:
- Código:
using TPPS;
public class ClasseForaDoNamespace{
CLASSE1 classe = new CLASSE1 ();
classe.teste = 1;
}
Os namespaces são utilizados para reaproveitamento de códigos, servindo mesmo como uma biblioteca, assim como o Unity faz com Unity.Engine, onde sempre reaproveitamos classes dela (Monobehaviour, por exemplo), serve também para "unificar" dados de uma mesma aplicação, onde esses dados serão compartilhados em vários pontos do sistema como enumerações e delegates, por fim, também impendem o conflito de classes com mesmo nome, por exemplo, o Unity tem a classe Random, mas o .Net também possui essa classe. Para diferenciar os dois randoms, basta usar a biblioteca específica, como usamos Unity.Engine, estamos usando a classe Random desse namespace, mas se a gente também estiver usando a biblioteca System na aplicação, o namespace vai servir como sobrenome para diferenciar as classes com nomes iguais, assim:
System.Random é uma classe diferente de UnityEngine.Random, o namespace diferencia ambas, mesmo com nomes iguais.
Se não for o caso de nenhuma das necessidades acima, não há motivos para ser utilizar um namespace no código.
Re: [Duvida] Sobre Namespace
MayLeone escreveu:Para fazer acesso vc precisa instanciar a classe já que ela não é componente de Unity:
- Código:
CLASSE1 classe = new CLASSE1 ();
classe.teste = 1000;
Para fazer acesso externo vc precisa incluir o namespace na declaração:
- Código:
public class ClasseForaDoNameSpace{
TPPS.CLASSE1 classe = new TPPS.CLASSE1();
classe.teste = 450;
}
Ou usando a diretiva using:
- Código:
using TPPS;
public class ClasseForaDoNamespace{
CLASSE1 classe = new CLASSE1 ();
classe.teste = 1;
}
Os namespaces são utilizados para reaproveitamento de códigos, servindo mesmo como uma biblioteca, assim como o Unity faz com Unity.Engine, onde sempre reaproveitamos classes dela (Monobehaviour, por exemplo), serve também para "unificar" dados de uma mesma aplicação, onde esses dados serão compartilhados em vários pontos do sistema como enumerações e delegates, por fim, também impendem o conflito de classes com mesmo nome, por exemplo, o Unity tem a classe Random, mas o .Net também possui essa classe. Para diferenciar os dois randoms, basta usar a biblioteca específica, como usamos Unity.Engine, estamos usando a classe Random desse namespace, mas se a gente também estiver usando a biblioteca System na aplicação, o namespace vai servir como sobrenome para diferenciar as classes com nomes iguais, assim:
System.Random é uma classe diferente de UnityEngine.Random, o namespace diferencia ambas, mesmo com nomes iguais.
Se não for o caso de nenhuma das necessidades acima, não há motivos para ser utilizar um namespace no código.
Obrigado mayleone, ja tinha resolvido, faltava iniciar um void no scope da classe, eu tentava instanciar ela como vc disse e não dava, o burro aqui esqueçeu kkkk
nibirou- MembroAvançado
- PONTOS : 2074
REPUTAÇÃO : 15
Áreas de atuação : C#,C++,produção de audio
Respeito as regras :
Tópicos semelhantes
» ERRO: O nome de tipo ou namespace "UI" não existe no namespace "UnityEngine"
» Duvida sobre cutscenes
» Duvida sobre animações
» Duvida sobre Spawn
» [DÚVIDA] Dúvida sobre script e rigidbody
» Duvida sobre cutscenes
» Duvida sobre animações
» Duvida sobre Spawn
» [DÚVIDA] Dúvida sobre script e rigidbody
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos