Cara que curso top. Fiquei mó feliz agora, quando peguei um programinha que fiz usando as primeiras aulas do curso, tinha 300 linhas, meio mundo de variáveis. E consegui eliminar boa parte das variáveis, reduzi 80 linhas do programa. sem mudar nada no funcionamento
Boa noite professor, é necessário isar o método construtor em C#? eu pergunto porque na linguagem Java a limpeza dos endereços de memória é altomática.
Ótima aula, porém meu método destrutor não imprimiu no console. Usei a dica do amigo adicionando o Console.Read(); Porém não funcionou. Estou usando o VsCode
Eu não entendi o seguinte: " public Jogador(string n){ energia=100; vivo=true; nome=n;" Falamos que nome = n mas não usamos o n nunca mais... Quando que aplicamos esse método de novo? Porque não to entendo pra onde vai esse n. Assim como a energia=100 e a vivo=true, ele está presente na informação de cada jogador?
O método construtor exige pelo menos um parâmetro de entrada, então o n é a variavel local que foi passada como parâmetro para a variaval nome que é uma variavel global da classe Jogador. Tudo que está dentro do método construtor pode ser executado de forma independente, desde que você atribua valores a eles, seja por parâmetro ou seja atribuindo valores. energia=100 e vivo=true não foram passados como parâmetro por isso eles não foram exigidos pelo método construtor , baste você imprimir eles la na classe Main. Console.WriteLine("Nome do jogador 1: {0}, energia: {1}, vivo = {2}", j1.nome, j1.energia, j1.vivo); Console.WriteLine("Nome do jogador 2: {0}, energia: {1}, vivo = {2}", j2.nome, j2.energia, j2.vivo);
fiz esse programa pra pegar informações se o jogador ta vivo, qual o nick, e quantas balas ele tem. using System; namespace Aula01 { public class Jogador{ public bool vida; public int balas; public string nick; public Jogador(bool v, int b, string n){ vida = v; balas = b; nick = n; } } class Program { static void Main(string[] args) { string nick1; string conferir_vida; bool vida1; int municao; Console.Write("Qual seu nick? "); nick1 = Convert.ToString(Console.ReadLine()); Console.Write("Morto ou Vivo? "); conferir_vida = Convert.ToString(Console.ReadLine()); if (conferir_vida == "vivo"){ vida1 = true; }else { vida1 = false; } Console.Write("Quantas balas você tem? "); municao = int.Parse(Console.ReadLine()); Jogador j1 = new Jogador(vida1, municao, nick1); Console.WriteLine("Nick: {0} Status Vida: {1} Qtd.Balas: {2}", j1.nick, j1.vida, j1.balas); } } }
@@valdeniraraujo6860 teria como colar aki no comentário o codigo do jeito que você fez? pq Tentei dessa forma aki: ~ Jogador () { Console.WriteLine("Jogador {0} Foi Destruído", nome); Console.Read(); } Mas não funcionou. Se puder colar essa parte do código para que eu possa ver da forma que vc fez, já agradeço.
Boa tarde professor , conclui agora o curso de qt creator , estou com dificuldades de abrir outra main window , por exemplo eu tenho uma janela dialog e não consigo chamar uma janela do tipo main window , teria como me ajudar?
o meu destrutor não deu certo e tambem nao apareceu nenhuma mensagem de erro. rss Estou colocando no gitlab caso o professor quiser posso esta passando o link. ok. obrigado.
Estou usando o Visual Studio e o texto escrito dentro do destrutor não é impresso na tela, vejo que mais pessoas tem o mesmo problema mas não consegui achar uma solução para isso, alguém sabe o que fazer?
cara eu achei algo dizendo que no c# já existe um metodo que libera a memoria automaticamente, controlado pelo gc (garbage collector) em qual thread isso vai acontecer, nao se sabe.para um aprofundamento maior sobre gerenciamento de memória, existem dois livros seguem os links
Se o construtor cria um objeto de uma determinada classe, e ele deve ter o nome da classe, e o destrutor também, como criariamos algum objeto se o construtor iria criar e o destrutor destruir na mesma pegada, haja vista que ambos os métodos tem o mesmo nome de chamada...?
Não sei se compreendi bem, mas a sua dúvida é sobre o fato de o constructor e o destructor terem o mesmo nome, como o compilador saberia diferenciar quando criar e quando apagar aquela classe, certo? Se for isso, é através da sintaxe que diferencia ambos: o destructor começa com '~', diferente do constructor. Outra diferença: no constructor, eu preciso explicitar o modificador de acesso "public", já que o default é private.
Boa noite a todos! Estas aulas são excelentes e estou aprendendo C# como mais uma opção. Estou com um pequeno problema e se alguém puder me ajudar ficarei imensamente grato, quando fecho um programa ao reabri-lo o Visual Studio Code não reconhece os caracteres especiais tipo 'ç', '~', '^'. Se alguém souber como resolver este problema agradeço. Muito obrigado a todos e bons estudos.
Olá Claudio Lopes. Já tentasse atualizar o VS Code ou desinstalar e instalar uma nova versão ? Veja também se talvez não tem referência com plugin de tradução para PT-BR visto que por padrão o VS Code vem em inglês.
Professor eu fiz igual está na aula mais no meu terminal na hora de compilar aparecer esse erro "O método deve ter um tipo de retorno" eu já vir a aula 3 vezes mais ainda continua o erro
Boa Tarde, professor!!!! Gostaria, se possível, apesar de tanto tempo, saber porque o "Destruidor no C#" comigo não funciona. public class Jogador { public int energia; public bool vivo; public string nome; public Jogador(string n) // Método Construtor { energia=100; vivo=true; nome=n; } ~Jogador() // Destrutor { Console.WriteLine("O jogador foi destruido!"); } }
class Program { static void Main() { string nome1; Console.WriteLine("Digite o nome do jogador 1:"); nome1=Console.ReadLine(); Jogador j1=new Jogador(nome1); Jogador j2=new Jogador("Théo");
Console.WriteLine("Nome do jogador 1 é: {0}",j1.nome); Console.WriteLine("Nome do jogador 2 é: {0}",j2.nome); } } ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Terminal --------------- Digite o nome do jogador 1: Marcos Nome do jogador 1 é: marcos Nome do jogador 2 é: Théo PS C:\Users\Acer\Documents\Programação\C#Curso.Aula29> !!!!Muito obrigado!!!!
O meu destrutor não funciona de jeito nenhum, alguem sabe dizer o pq, já procurei no google e não funciona, to fazendo exatamente igual using System; public class Jogador { public int energia; public bool vivo; public string nome; public Jogador(string n) { energia = 100; vivo = true; nome = n; } ~Jogador() { Console.WriteLine("Jogador {0} foi destruido", nome); Console.WriteLine("Metodo destrutor funcionando"); }
} class Aula29 { static void Main() { string nome1; Console.WriteLine("Digite o nome do jogador 1"); nome1 = Console.ReadLine(); Jogador j1 = new Jogador(nome1); Jogador j2 = new Jogador("Rem"); Console.WriteLine("Nome do jogador 1: {0}", j1.nome); Console.WriteLine("Nome do jogador 2: {0}", j2.nome); }
Cara o curso ta otimo. To correndo atrás de vcs mas ta muito bom foi o melhor que achei aqui.
Cara que curso top. Fiquei mó feliz agora, quando peguei um programinha que fiz usando as primeiras aulas do curso, tinha 300 linhas, meio mundo de variáveis. E consegui eliminar boa parte das variáveis, reduzi 80 linhas do programa. sem mudar nada no funcionamento
caramba mais uma aula muito shoooooooooooooooooooow adoreiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Muito bom TODAS as aulas até aqui !!! Parabéns pelo excelente trabalho, palavras de um iniciante na programação
Obrigado professor por todo o seu empenho , às aulas são incríveis
Obg pelo vídeo ❤️
parabéns novamente por seu conteudo
Valeu meu caro, muito obrigado
Boa noite professor, é necessário isar o método construtor em C#? eu pergunto porque na linguagem Java a limpeza dos endereços de memória é altomática.
👍👍👍
É legal lembrar que o detruidor so destroi se nenhum metodo da class estiver sendo usado
#MaratonaCFB 29 episódios em 6 dias!
Entendia aula, mas qual a diferença da aula passada ? Economiza memoria ?
Ótima aula, porém meu método destrutor não imprimiu no console.
Usei a dica do amigo adicionando o Console.Read(); Porém não funcionou.
Estou usando o VsCode
no lugar de criar nome1 coloquei o Console.ReadLine(); dentro dos parametros.
Eu não entendi o seguinte:
" public Jogador(string n){
energia=100;
vivo=true;
nome=n;"
Falamos que nome = n mas não usamos o n nunca mais...
Quando que aplicamos esse método de novo? Porque não to entendo pra onde vai esse n.
Assim como a energia=100 e a vivo=true, ele está presente na informação de cada jogador?
Sim, nome é uma propriedade do jogador.
O método construtor exige pelo menos um parâmetro de entrada, então o n é a variavel local que foi passada como parâmetro para a variaval nome que é uma variavel global da classe Jogador.
Tudo que está dentro do método construtor pode ser executado de forma independente, desde que você atribua valores a eles, seja por parâmetro ou seja atribuindo valores.
energia=100 e vivo=true não foram passados como parâmetro por isso eles não foram exigidos pelo método construtor , baste você imprimir eles la na classe Main.
Console.WriteLine("Nome do jogador 1: {0}, energia: {1}, vivo = {2}", j1.nome, j1.energia, j1.vivo);
Console.WriteLine("Nome do jogador 2: {0}, energia: {1}, vivo = {2}", j2.nome, j2.energia, j2.vivo);
fiz esse programa pra pegar informações se o jogador ta vivo, qual o nick, e quantas balas ele tem.
using System;
namespace Aula01
{
public class Jogador{
public bool vida;
public int balas;
public string nick;
public Jogador(bool v, int b, string n){
vida = v;
balas = b;
nick = n;
}
}
class Program
{
static void Main(string[] args)
{
string nick1;
string conferir_vida;
bool vida1;
int municao;
Console.Write("Qual seu nick? ");
nick1 = Convert.ToString(Console.ReadLine());
Console.Write("Morto ou Vivo? ");
conferir_vida = Convert.ToString(Console.ReadLine());
if (conferir_vida == "vivo"){
vida1 = true;
}else
{
vida1 = false;
}
Console.Write("Quantas balas você tem? ");
municao = int.Parse(Console.ReadLine());
Jogador j1 = new Jogador(vida1, municao, nick1);
Console.WriteLine("Nick: {0}
Status Vida: {1}
Qtd.Balas: {2}", j1.nick, j1.vida, j1.balas);
}
}
}
Fiz igualzinho o da aula e meu destrutor não apareceu! Estou usando o VS community.
Igual; No visual studio executa mas não imprime. No visual code imprime, exato mesmo código
no metodo destrutor acrescente isso dentro das chaves: Console.Read();
@@valdeniraraujo6860 teria como colar aki no comentário o codigo do jeito que você fez? pq Tentei dessa forma aki:
~ Jogador ()
{
Console.WriteLine("Jogador {0} Foi Destruído", nome);
Console.Read();
}
Mas não funcionou. Se puder colar essa parte do código para que eu possa ver da forma que vc fez, já agradeço.
Conseguiu?? Usei o ReadKey, fica na tela, mas não destrói os dois, usou o {0} pra puxar o primeiro nome digitando e não substituir
Boa tarde professor , conclui agora o curso de qt creator , estou com dificuldades de abrir outra main window , por exemplo eu tenho uma janela dialog e não consigo chamar uma janela do tipo main window , teria como me ajudar?
entendi o curso todo, mas a aula passada e essa eu vi e revi várias vezes, n consigo entender
o meu destrutor não deu certo e tambem nao apareceu nenhuma mensagem de erro. rss
Estou colocando no gitlab caso o professor quiser posso esta passando o link. ok. obrigado.
no metodo desstrutor acrescente isso dentro das chaves: Console.Read();
Estou usando o Visual Studio e o texto escrito dentro do destrutor não é impresso na tela, vejo que mais pessoas tem o mesmo problema mas não consegui achar uma solução para isso, alguém sabe o que fazer?
cara eu achei algo dizendo que no c# já existe um metodo que libera a memoria automaticamente, controlado pelo gc (garbage collector) em qual thread isso vai acontecer, nao se sabe.para um aprofundamento maior sobre gerenciamento de memória, existem dois livros seguem os links
Se o construtor cria um objeto de uma determinada classe, e ele deve ter o nome da classe, e o destrutor também, como criariamos algum objeto se o construtor iria criar e o destrutor destruir na mesma pegada, haja vista que ambos os métodos tem o mesmo nome de chamada...?
Não sei se compreendi bem, mas a sua dúvida é sobre o fato de o constructor e o destructor terem o mesmo nome, como o compilador saberia diferenciar quando criar e quando apagar aquela classe, certo?
Se for isso, é através da sintaxe que diferencia ambos: o destructor começa com '~', diferente do constructor.
Outra diferença: no constructor, eu preciso explicitar o modificador de acesso "public", já que o default é private.
Fiz igualzinho o método destrutor, mas não pegou. Ele não aparece, aconteceu isso com alguém mais?
Está usando o Visual Studio? Pois no meu não aconteceu nada também
No meu nada aconteceu também
no meu vs community também nao funfou
no metodo destrutor acrescente isso dentro das chaves: Console.Read();
Boa noite a todos! Estas aulas são excelentes e estou aprendendo C# como mais uma opção. Estou com um pequeno problema e se alguém puder me ajudar ficarei imensamente grato, quando fecho um programa ao reabri-lo o Visual Studio Code não reconhece os caracteres especiais tipo 'ç', '~', '^'. Se alguém souber como resolver este problema agradeço. Muito obrigado a todos e bons estudos.
Amigo, não sei a solução, mas é estranho porque aqui o visual studio jamais teve problemas com esses caracteres. Pode detalhar mais?
Olá Claudio Lopes. Já tentasse atualizar o VS Code ou desinstalar e instalar uma nova versão ? Veja também se talvez não tem referência com plugin de tradução para PT-BR visto que por padrão o VS Code vem em inglês.
Professor eu fiz igual está na aula mais no meu terminal na hora de compilar aparecer esse erro "O método deve ter um tipo de retorno" eu já vir a aula 3 vezes mais ainda continua o erro
metodo deve estar void,muda isso ae
Odeio essa parte de construtores, na faculdade me enrolei com isso no JAVA, deu trabalho para entrar na cabeça, no JAVA tem que declarar 2 vezes
Ele explicou o q é uma instância? Eu n lembro, já q ele fala tanto nesse termo...
É quando vc cria um novo objeto de uma classe.
Boa Tarde, professor!!!!
Gostaria, se possível, apesar de tanto tempo, saber porque o "Destruidor no C#" comigo não funciona.
public class Jogador
{
public int energia;
public bool vivo;
public string nome;
public Jogador(string n) // Método Construtor
{
energia=100;
vivo=true;
nome=n;
}
~Jogador() // Destrutor
{
Console.WriteLine("O jogador foi destruido!");
}
}
class Program
{
static void Main()
{
string nome1;
Console.WriteLine("Digite o nome do jogador 1:");
nome1=Console.ReadLine();
Jogador j1=new Jogador(nome1);
Jogador j2=new Jogador("Théo");
Console.WriteLine("Nome do jogador 1 é: {0}",j1.nome);
Console.WriteLine("Nome do jogador 2 é: {0}",j2.nome);
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Terminal
---------------
Digite o nome do jogador 1:
Marcos
Nome do jogador 1 é: marcos
Nome do jogador 2 é: Théo
PS C:\Users\Acer\Documents\Programação\C#Curso.Aula29>
!!!!Muito obrigado!!!!
comigo tambem não funcionou fiquei minutos tentando entender revi a aula e mesmo assim não deu certo
O destrutor não funcionou Aqui nao msm seguindo certinho o tutorial kk estranho né
verifique se você colocou public, pois ele não aceita.
no metodo desstrutor acrescente isso dentro das chaves: Console.Read();
O meu destrutor não funciona de jeito nenhum, alguem sabe dizer o pq, já procurei no google e não funciona, to fazendo exatamente igual
using System;
public class Jogador
{
public int energia;
public bool vivo;
public string nome;
public Jogador(string n)
{
energia = 100;
vivo = true;
nome = n;
}
~Jogador()
{
Console.WriteLine("Jogador {0} foi destruido", nome);
Console.WriteLine("Metodo destrutor funcionando");
}
}
class Aula29
{
static void Main()
{
string nome1;
Console.WriteLine("Digite o nome do jogador 1");
nome1 = Console.ReadLine();
Jogador j1 = new Jogador(nome1);
Jogador j2 = new Jogador("Rem");
Console.WriteLine("Nome do jogador 1: {0}", j1.nome);
Console.WriteLine("Nome do jogador 2: {0}", j2.nome);
}
}
queria saber porque todos os professores de informática botam esses nomes fodas; zenifreudo.
Kkkkkkk, boa pergunta
RECEBI UM EMAIL QUERO SABER A LOZALIZAÇÃO E O FACEBOOK DO CARA QUE ME MANDOU O EMAIL VC CONSEGUE ENCONTRAR?
ahhhhhhhhhhhhhhh, oque isso tem haver com aula ???
@@edivandingo como o que ?
@@edivandingo aki é sobre computador entao é sobre o que preciso saber