SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Arquivo jar não encontrado
OBJETO sendo detruído imediatamente mesmo com o...
Meu site de Modelos 3D
DÚVIDA - ao pressionar andar, o player parece cancelar a gravidade (VÍDEO)
[RESLVIDO] Unity - "transform.SetParent()" em 2 objetos move outros objetos
Dúvida sobre resoluções de tela
Duvida na AppleStore
pressionando a tecla abaixar, o player continua andando abaixado (2D).
Fala Pessoal! Saiu mais um trailer do jogo que venho desenvolvendo
[RESOLVIDO] passar de uma animação para a outra rapidamente pelo animator
Unity - PlayerPrefs n são apagados no Celular mesmo Reiniciando o Aparelho
Modeloes 3D do Site Sketchfab
Blender - Modelos Importados transparentes
[PEDIDO]Cololar jogo na loja play store
Como pegar um objeto e fazer ele aparecer em forma de Estamina no Inspector
Procuro Pessoas para Projeto
Algum tutorial de como fazer um app que receba fotos e q fiqu armazenado no
Procuro um time para um jogo de corrida
[RESOLVIDO] Botões de Ataque e Pular carrega duas animações ao mesmo tempo
DEATH ISLAND 0.2.5 SURVIVAL GAME 4 ANOS EM DESENVOLVIMENTO
Player travando na colisão com o chão Unity 2D
Como resolver vazamento de memoria?
Instanciar uma classe nos atributos de outra classe é uma boa prática?
Jogo multiplayer com steam
Unity - Renderizção com Câmera Jogo Lento e travando. Alguém pfv?!
Mini Quarteirão com Texturas 3D VENDA
Controle do braço e cabeça no fps
PRECISO FAZER QUE MEU GAME FIQUE ONLINE
Ativar o objeto correto em Clones.
[TUTORIAL] Como fazer um interruptor simples (Unity 2018)
Preciso de 20 testadores jogo mobile
O Labirinto II - Trailer Oficial
Ue posso divulgar meu game que ainda esta em criaçao aqui no forum?
[RESOLVIDO] Inverter o sprite para a direçao que o personagem anda.
Set Active não a reabiilitado C#
Build APK VR Google Cardbord com video.
[PROGRAMADOR FREELA] $$
Mais Um jogo!
Collider (mesh?)
[TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)
WW2 Low poly Pack (Free)
Procuro freelancer
Novo Teaser do jogo Dark Age
Unity Admob Erro
Sombras estão quadradas na build
nao consigo fazer o player sentar no sofa alguem me ajuda
Unity - Ao mudar de scene, todas as Lights são deletadas
210 Linhas de código para inimigo é muito grande?
modelar avatar e skins para um jogo web
ShapeKeys do Blender para a Unity altera áreas próximas
COMO EVITAR QUE UM OBJETO (PLAYER,ITEM ETC...) ATRAVESSE UMA PAREDE.
Ajuda em Script de Verificação de Ação e Reação
unity Failed to load PlayerSettings (internal index #0). Most likely data f
Materiais do Blander não aparecem no MeshRendere do Objeto na Unity
Repetiçoes de Textura no Terreno
SERVER IS DOWN - UNITY+MSQL
Procuro programadores - Novo jogo
Problema com o MS VEHICLES
Preciso de ajuda com a Unity
Problema com vídeo em 360° na Unity
Problemas no MS Vehicles
unity- eventos na Animação com Armature/Bones vinda do blender não funciona
ajuda exibir resultados simulados em uma liga Game Unity
Unity - ParticleSystem não é redirecionado no rawimage no canvas
Como resolver o problema de "face orientation" no Blender.
[DÚVIDA] Tive um problema com meu Canvas
erro na Directional Light
Problemas com o Directional Light da Unity 3D
Novo jogo da franquia Sphere game em desenvolvimento
malha da roda não girando com wheel collider unity
Problemas com ambiguidade
Touch mobile
INVALID TOKEN
Como acessar o "HD Render Pipeline" do HDRP por script?
CHAT GPT PRA JOGO DE TIRO? comentem
Tutorial script inimigo segue e foge do player
Ainda vale a pena lançar Asset na Asset Store?
Ajuda com tabela de historico de pontuaçao.
[TUTORIAL] Entrar no carro estilo GTA
Como derrapar um Whell Collider
Como altertar o valor do "Asymptote Value" do Whell Collider via Script
Preciso de ajuda para substituir valor de variavel em outro script
Ajuda com Top Down Shooter utilizando Photon
Duvida com Netcode
[RESOLVIDO] Unity - Movendo a Câmera na Horizontal/Vertical com Touch
Alguém me ajuda com os anúncios pfv
Segundo Trailer do jogo Dark Age, Feliz Natal a todos!
Unity - ScrollRect, Viewport, Content - O Conteúdo ñ inicia no topo
Coleta de itens
Unity - Cadastro do email do jogador
[GRATIS] PACK DE MODELOS 3D PARA JOGO DE TERROR
Onde Conseguir músicas para meu Jogo?
error CS0246 em Script
Alguem teve ja esse problema?
[Projeto em Andamento] Draug, um jogo de hordas
DISPONIVEL PARA FAZER MODELOS 3D
Unity-Loja.Como os Jogadores terão acesso aos ítens comprados na PlayStore?
Bugando depois do Build.
Primeiro Trailer do jogo Dark Age
Qua Out 23, 2024 8:39 pm
Sex Out 18, 2024 4:05 pm
Dom Out 06, 2024 6:02 pm
Sáb Out 05, 2024 6:37 am
Qui Out 03, 2024 10:09 pm
Seg Set 30, 2024 9:25 am
Sáb Set 28, 2024 11:39 am
Seg Set 09, 2024 7:33 am
Dom Set 08, 2024 10:08 pm
Ter Set 03, 2024 11:59 am
Qua Ago 28, 2024 7:45 pm
Qua Ago 28, 2024 7:18 pm
Qua Ago 28, 2024 8:34 am
Dom Ago 25, 2024 8:37 pm
Sáb Ago 24, 2024 1:58 pm
Sex Ago 23, 2024 3:30 pm
Sex Ago 23, 2024 3:23 pm
Qua Ago 21, 2024 5:48 pm
Dom Ago 18, 2024 8:51 pm
Sex Ago 16, 2024 12:59 pm
Qua Ago 14, 2024 10:57 am
Sáb Ago 10, 2024 8:03 pm
Sex Ago 09, 2024 7:37 pm
Dom Ago 04, 2024 4:41 pm
Dom Ago 04, 2024 3:16 pm
Qui Jul 25, 2024 2:48 pm
Dom Jul 21, 2024 7:07 pm
Dom Jul 21, 2024 12:07 am
Sáb Jul 13, 2024 12:33 am
Qui Jun 27, 2024 5:49 pm
Qui Jun 20, 2024 12:30 pm
Dom Jun 09, 2024 7:43 pm
Dom Jun 09, 2024 2:16 pm
Seg Jun 03, 2024 11:39 am
Seg maio 27, 2024 12:45 pm
Seg maio 20, 2024 9:01 pm
Dom maio 19, 2024 3:08 pm
Sáb maio 18, 2024 11:46 am
Sáb maio 11, 2024 8:55 am
Qui maio 09, 2024 11:33 pm
Seg Abr 29, 2024 9:34 pm
Qui Abr 25, 2024 3:34 pm
Seg Abr 22, 2024 5:15 pm
Seg Abr 15, 2024 12:23 pm
Seg Abr 08, 2024 9:27 pm
Seg Abr 08, 2024 8:01 am
Sáb Abr 06, 2024 8:05 pm
Qui Abr 04, 2024 11:34 pm
Qui Abr 04, 2024 11:13 pm
Sex Mar 22, 2024 2:41 pm
Dom Mar 10, 2024 2:30 pm
Sex Mar 01, 2024 1:27 pm
Qui Fev 22, 2024 9:57 pm
Ter Fev 20, 2024 12:15 am
Seg Fev 19, 2024 1:06 pm
Seg Fev 12, 2024 1:56 pm
Seg Fev 12, 2024 1:17 pm
Dom Fev 11, 2024 8:55 pm
Dom Fev 11, 2024 11:16 am
Seg Fev 05, 2024 4:18 pm
Dom Fev 04, 2024 9:39 pm
Qua Jan 31, 2024 11:59 pm
Ter Jan 30, 2024 7:37 pm
Ter Jan 23, 2024 6:33 pm
Dom Jan 21, 2024 6:03 pm
Sáb Jan 20, 2024 7:03 pm
Sáb Jan 20, 2024 6:58 pm
Sáb Jan 20, 2024 6:39 pm
Sex Jan 19, 2024 8:40 am
Dom Jan 14, 2024 5:30 pm
Qua Jan 10, 2024 10:29 pm
Qua Jan 10, 2024 8:55 pm
Qua Jan 10, 2024 7:14 pm
Ter Jan 09, 2024 3:55 pm
Ter Jan 09, 2024 8:04 am
Sáb Jan 06, 2024 8:02 pm
Sex Jan 05, 2024 7:01 am
Sex Jan 05, 2024 12:12 am
Qui Jan 04, 2024 6:55 pm
Qui Jan 04, 2024 12:52 pm
Qui Jan 04, 2024 4:34 am
Ter Jan 02, 2024 11:48 pm
Dom Dez 31, 2023 7:25 pm
Qua Dez 27, 2023 5:44 pm
Qua Dez 27, 2023 3:08 pm
Sáb Dez 23, 2023 7:27 pm
Sáb Dez 23, 2023 5:06 pm
Qui Dez 21, 2023 8:10 pm
Seg Dez 18, 2023 2:04 pm
Sex Dez 15, 2023 5:11 pm
Qui Dez 14, 2023 9:13 pm
Qui Dez 14, 2023 2:47 pm
Qui Dez 14, 2023 1:48 pm
Qua Dez 13, 2023 8:58 pm
Ter Dez 12, 2023 2:32 pm
Seg Dez 11, 2023 1:53 pm
Qua Dez 06, 2023 8:13 pm
Sáb Dez 02, 2023 8:06 pm
Qui Nov 30, 2023 7:49 am



































































































[TUTORIAL] O que são métodos/funções

4 participantes

Ir para baixo

TUTORIAL [TUTORIAL] O que são métodos/funções

Mensagem por MayLeone Sáb Jun 02, 2018 4:22 pm

O que são métodos?
Métodos são sequências de instruções, essas instruções são definidas a partir de uma lista de comandos que poderão ser executadas em ordem, assim que o método for solicitado.
Os métodos são úteis para otimizar o seu código de forma que seu trabalho se torne dinâmico e prático, pois eles tem como função organizar seu programa em partes, separadas por blocos de tarefas.
Por exemplo, digamos que esteja programando um jogo de cartas. Esse jogo precisará de instruções para iniciar, definir os jogadores, embaralhar as cartas e distribuí-las, correto?
Ao invés de você programar todas essas instruções tudo de uma vez, o mais interessante e prático seria separar cada “função” do programa a partir de métodos, por exemplo:

[TUTORIAL] O que são métodos/funções E0VkeUC

Outra vantagem de utilizar os métodos em sua programação é a produtividade no código.
Você pode criar um método para executar uma sequência de instruções que poderão ser utilizadas em diversos momentos da sua programação, ou seja, ao invés de programar novamente aquela mesma sequência, você simplesmente a programa uma vez dentro do método, e a partir disto apenas o chama para que ele execute a lista de comandos quantas vezes forem necessárias.





Como criar métodos?
Os métodos são criados a partir de um nome antecedido por alguns atributos, por exemplo:

[TUTORIAL] O que são métodos/funções 0G1ATte

Vamos por partes, onde será explicado o que cada atributo significa:

[TUTORIAL] O que são métodos/funções D3YEEW3


  • Acesso:


A palavra “public” é o modificador de acesso do seu método, ou seja, onde seu método poderá ser chamado e acessado.
Se for public (público) este método poderá ser chamado a partir de qualquer classe externa (ou seja, que não contém este método definido).
Se for private (privado) o método só poderá ser chamado dentro da classe que ele foi criado.
Não se preocupe em pensar nisto agora, o final deste documento trará uma breve explicação e exemplo prático da diferença entre esses tipos de acesso.
O método nem sempre precisa ser definido com esta informação, você pode escrever o seu método sem as palavras reservadas de acesso, por exemplo:

[TUTORIAL] O que são métodos/funções Jquo1mg


  • Instância do método:


A palavra “static” (estático) ao ser utilizada na definição do seu método, faz com que o mesmo não necessite ser instanciado (criar uma “cópia” dele dentro de um objeto) para que ele possa ser chamado.
Normalmente definimos métodos estáticos quando estamos utilizando o console de aplicações do Visual Studio, onde não existe a necessidade de instanciamento de métodos para que sejam utilizados.
Porém, este assunto sobre instâncias será melhor abordado em aulas futuras, então não fique com receio se não compreendeu muito bem esta explicação por agora.
Esse atributo também pode ser omitido no momento da criação do método, fazendo com que o mesmo não seja estático, bastando não escrever essa palavra reservada no momento de criação do método:

[TUTORIAL] O que são métodos/funções WtqcuO6


  • Tipo de retorno:


Quando um método for criado é importante que seja definido seu tipo de retorno, ou seja, qual o tipo de objeto que ele vai retornar para seu chamador.
Os tipos de retornos podem ser definidos como as variáveis: int para inteiros, float/decimal/double para números quebrados, char ou string para textos ou caractere e também bool, que retornará um valor verdadeiro (true) ou falso (false).
O retorno de um método é como se fosse o “resultado final” do seu processo que será devolvido dentro de uma variável, por exemplo.
Não se preocupe, pois no exemplo prático sobre a utilização de métodos você entenderá melhor este conceito de “retorno”.
Sempre que definir um método que possui algum valor a ser retornado, é indispensável a utilização da palavra reservada “return” em algum momento do seu método, fazendo com que este comando retorne o valor desejado.
Às vezes um método não vai ter a necessidade de retornar um valor, então quando for este o caso, o tipo de retorno deve ser vazio (void):

[TUTORIAL] O que são métodos/funções COaYrXE


  • Nome do método:


O nome para o método é obviamente obrigatório no momento de sua criação, pois será a partir deste nome que ele será identificado pelo compilador.
A nomeação do método fica a cargo do programador, e segue as mesmas regras de “nomeação” de variáveis:
1. Não iniciar com números e caracteres especiais;
2. Não conter acentuações;
3. Não utilizar espaços nem pontos para separar suas palavras;




  • Parâmetros:


Os métodos após seu nome devem sempre possuir os parênteses “()” para que funcionem corretamente.
Dentro desses parênteses devem conter os parâmetros do seu método, que nada mais são que as informações que serão passadas para o método, indicando com o que ele vai trabalhar.
Os parâmetros devem ter um tipo (assim como os tipos de retornos) e devem ser separados por vírgulas caso forem mais de um:

[TUTORIAL] O que são métodos/funções Buf9IAz

Nem sempre o método precisa possuir parâmetros, nesse caso os parênteses devem estar vazios:

[TUTORIAL] O que são métodos/funções WSKYIns

Como já dito neste documento, os métodos não são nada mais que uma sequência de instruções (blocagem de códigos), portanto devem iniciar com uma chave aberta “{“ e terminar com a chave fechada “}”, assim como fazemos com as estruturas condicionais e de repetições.





Utilizando Métodos:
Agora vamos utilizar todos os conceitos apresentados acima com alguns exemplos da aplicação dos métodos e o seu uso na programação.
Vamos abrir o console de aplicação do Visual Studio para que possamos trabalhar com nossos códigos.
O primeiro exemplo seria criar uma calculadora bem simples que apenas calcula com duas variáveis. Essa calculadora vai solicitar o valor das variáveis e qual operação será realizada.
Você poderia criar este programa sem o uso dos métodos, porém se desejasse calcular mais de duas variáveis distintas iria ter de realizar o processo de cálculo novamente, porém com o método você só o programa uma vez e o reutiliza para outras variáveis:
Dentro do método Main crie as duas varáveis que serão calculadas:




Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
float var1 = 0, var2 = 0;
}
}
}

Agora vamos criar nosso método fora do método Main (não se cria métodos dentro de outros métodos).
Como estamos no console de aplicações, o método deve ser estático.
Ele não vai nos retornar valor algum e seus parâmetros devem ser do tipo float (assim como as variáveis que criamos) para que o método realize as operações com elas:



Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
float var1 = 0, var2 = 0;
}
static void Calculadora(float numero1, float numero2)
{
}
}
}

Agora devemos cobrar do usuário os valores a serem calculados e a operação matemática a ser realizada. Faremos isto dentro do método através dos consoles de entrada e saída de dados (ReadLine e WriteLine):




Código:
using System;[size=10][/size]
using System.Collections.Generic;[size=10][/size]
using System.Linq;[size=10][/size]
using System.Text;[size=10][/size]
namespace ConsoleApplication1[size=10][/size]
{[size=10][/size]
class Program[size=10][/size]
{[size=10][/size]
static void Main(string[] args)[size=10][/size]
{[size=10][/size]
float var1 = 0, var2 = 0;[size=10][/size]
}[size=10][/size]
static void Calculadora(float numero1, float numero2)[size=10][/size]
{[size=10][/size]
string operacao = "";[size=10][/size]
float resultado = 0;[size=10][/size]
Console.WriteLine("Informe o primeiro valor");[size=10][/size]
numero1 = float.Parse(Console.ReadLine());[size=10][/size]
Console.WriteLine("Informe a operação matemática a ser realizada");[size=10][/size]
operacao = Console.ReadLine();[size=10][/size]
Console.WriteLine("Informe o segundo valor");[size=10][/size]
numero2 = float.Parse(Console.ReadLine());[size=10][/size]
}[size=10][/size]
}[size=10][/size]
}

Podemos criar uma estrutura condicional para verificar qual operação foi solicitada, e dentro dela executar as operações de soma, subtração, multiplicação e divisão.
Também podemos exibir no final do método o resultado da operação, finalizando seu bloco:




Código:
using System;[size=10][/size]
using System.Collections.Generic;[size=10][/size]
using System.Linq;[size=10][/size]
using System.Text;[size=10][/size]
namespace ConsoleApplication1[size=10][/size]
{[size=10][/size]
class Program[size=10][/size]
{[size=10][/size]
static void Main(string[] args)[size=10][/size]
{[size=10][/size]
float var1 = 0, var2 = 0;[size=10][/size]
}[size=10][/size]
static void Calculadora(float numero1, float numero2)[size=10][/size]
{[size=10][/size]
string operacao = "";[size=10][/size]
float resultado = 0;[size=10][/size]
Console.WriteLine("Informe o primeiro valor");[size=10][/size]
numero1 = float.Parse(Console.ReadLine());[size=10][/size]
Console.WriteLine("Informe a operação matemática a ser realizada");[size=10][/size]
operacao = Console.ReadLine();[size=10][/size]
Console.WriteLine("Informe o segundo valor");[size=10][/size]
numero2 = float.Parse(Console.ReadLine());[size=10][/size]
switch (operacao)[size=10][/size]
{[size=10][/size]
case "+":[size=10][/size]
resultado = numero1 + numero2;[size=10][/size]
break;[size=10][/size]
case "-":[size=10][/size]
resultado = numero1 - numero2;[size=10][/size]
break;[size=10][/size]
case "*":[size=10][/size]
resultado = numero1 * numero2;[size=10][/size]
break;[size=10][/size]
case "/":[size=10][/size]
if (numero2 != 0){resultado = numero1 / numero2;}[size=10][/size]
else { Console.WriteLine("Não é possível dividir por zero!"); }[size=10][/size]
break;[size=10][/size]
default:[size=10][/size]
Console.WriteLine("ERRO: Não foi informado um operador");[size=10][/size]
Console.ReadLine();[size=10][/size]
Console.Clear();[size=10][/size]
return;[size=10][/size]
}[size=10][/size]
Console.WriteLine("{0} {1} {2} = {3}", numero1, operacao, numero2, resultado);[size=10][/size]
Console.ReadKey();[size=10][/size]
}[size=10][/size]
}[size=10][/size]
}

Apesar de nosso método estar feito, ele não será executado sozinho. Para que ele possa iniciar seus comandos e suas instruções ele deve ser chamado.
Para chamar seu método, basta escrever seu nome e passar os argumentos a ele que devem estar entre os parênteses após o seu nome.
Como vamos calcular as variáveis “var1” e var2” elas serão nossos argumentos na chamada do método:

[TUTORIAL] O que são métodos/funções Jb0XBso

Ao rodar o debug do seu código, você terá algo mais ou menos dessa forma:

[TUTORIAL] O que são métodos/funções LthWdZv

Perceba que ao chamar o método “Calculadora”, você o executa e tudo o que está dentro de sua blocagem de códigos será executada na sequência em que foi programada.
Note também que você utilizou as variáveis “var1” e “var2” como argumentos de chamada do método.
Quando você define os argumentos, eles automaticamente são substituídos pelos parâmetros do seu método, que seriam “numero1” e “numero2”.

Se for perceber, no método são utilizadas estas variáveis para realizar os cálculos, veja nesta linha do código:
[TUTORIAL] O que são métodos/funções OkbnX8q

Isso significa que não importa quais variáveis você queira calcular, sempre que você chamar o método, o que será calculado serão as variáveis passadas como argumentos, o que nos possibilita utilizar esse método mais de uma vez para várias variáveis diferentes, evitando que você repita o código para executar o mesmo procedimento.
Experimente criar duas novas variáveis do tipo flutuante, passando-as como argumentos ao chamar novamente o método “Calculadora”:




Código:
static void Main(string[] args)[size=10][/size]
{[size=10][/size]
float var1 = 0, var2 = 0, var3 = 0, var4 = 0;[size=10][/size]
Calculadora(var1, var2);[size=10][/size]
Calculadora(var3, var4);[size=10][/size]
}

Veja que ao rodar o debug você poderá utilizar a calculadora duas vezes, com quatro variáveis diferentes, sem ter tido que reprogramar essa calculadora para as novas variáveis:

[TUTORIAL] O que são métodos/funções PGQnpau

Outra coisa que vale a pena notar em nosso código é a condição “default”, onde se o usuário não entrar com algum operador matemático válido, essa linha de código será executada:

[TUTORIAL] O que são métodos/funções H6ZbODT

Uma mensagem de erro será exibida no console de execução, e quando o usuário pressionar a tecla ‘enter’ a tela vai ser limpa através do método Console.Clear();
Veja também que utilizamos o “return” para sair de dentro do método.
Como nosso método não retorna valores (possui retorno vazio [void]), podemos utilizar o return para sair do método assim que ele for chamado, dessa forma, se o usuário não informar o operador matemático, a exibição do resultado da operação não será executada, pois o return foi chamado antes disso, evitando algum tipo de bug, não exibindo nenhum valor de cálculo.

Acho que já conseguiu perceber uma das vantagens de se utilizar métodos em seus programas, não? Pois como vimos aqui, podemos reaproveitar todas as instruções da nossa calculadora a qualquer momento do código em que o método for solicitado, e com diversas variáveis diferentes, apenas bastando passa-las em seu argumento de chamada. Simples, não é verdade?



Métodos com retornos:
Logo acima nós vimos como trabalhar com métodos que não retornam valores e são criados como “void”.
Agora vou mostrar uma aplicação simples de como podemos utilizar um método que retorna algum valor.
Como exemplo, vamos criar um programa que procure pelo maior valor inserido numa array de vetor.
Supondo que por algum motivo em nossa programação nós vamos precisar utilizar esse elemento para alguma validação no código.

Se o método que procura pelo maior elemento no vetor não tivesse um retorno, ele apenas iria processar essa função para nós, mas não poderíamos utilizar esse elemento porque ele estaria apenas dentro do método.
Para que possamos manipular o elemento que foi encontrado dentro do nosso método, sem termos que fazer isso no próprio método, mas sim em qualquer local de nosso código, nós devemos retorná-lo após o método encerrar sua execução, assim podemos utilizá-lo em aplicações futuras em nosso programa.
Vamos então criar uma array de inteiros dentro do nosso método Main, para que ela seja usada como argumento.
Você também pode utilizar o console de saída para que o usuário possa definir o tamanho desse vetor.

Crie nosso método como estático, com tipo de retorno de inteiros (pois ele vai retornar o maior elemento do vetor, que será um inteiro). Passe também o parâmetro que seria o vetor que vai ser verificado:





Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Qual será o tamanho do vetor?");
int tamanho = int.Parse(Console.ReadLine());
int[] ConjuntoDeNumeros = new int[tamanho];
}
static int MaiorValor(int[] vetor)
{
}
}
}


Não se preocupe se o tracejado vermelho permanecer abaixo do nome do seu método, ele vai desaparecer assim que você utilizar o “return” no código.
Agora dentro do método vamos utilizar os consoles de entrada e saída de dados para armazenarmos valores dentro dos índices desse vetor, utilizando um laço para que o diálogo seja programado apenas uma vez.

Para que possamos verificar qual o maior elemento inserido neste vetor, precisamos criar um novo laço que cheque cada índice do vetor.
Dentro desse laço criamos uma condição que verifica se o elemento do índice do vetor que está atualmente no contador é maior que o elemento guardado dentro de uma variável que criamos no início do método, a variável “ValorEncontrado”. Se o elemento dentro do índice do vetor for maior que o valor de “ValorEncontrado” essa variável passa a receber o valor do elemento do vetor, caso não, o laço apenas faz um incremento no índice deste vetor.
Após o laço percorrer todas as posições do vetor, o maior valor dentro dele vai ter sido encontrado, então podemos retorná-lo do método através do comando “return”:




Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Qual será o tamanho do vetor?");
int tamanho = int.Parse(Console.ReadLine());
int[] ConjuntoDeNumeros = new int[tamanho];
}
static int MaiorValor(int[] vetor)
{
int ValorEncontrado = 0;
for (int loop = 0; loop < vetor.Length; loop++)
{
Console.WriteLine(”Adicione um inteiro no vetor”);
vetor[loop] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < vetor.Length; i++)
{
if (i == 0) { ValorEncontrado = vetor[0]; }
if (vetor[i] > ValorEncontrado)
{
ValorEncontrado = vetor[i];
}
}
return ValorEncontrado;
}
}
}


Agora que terminamos de programar a lógica de nosso método, podemos chama-lo através do método Main.
Já que temos um valor a ser retornado deste método, podemos armazená-lo numa variável no momento de sua chamada, dessa forma essa variável passará a armazenar o valor retornado de nosso método, e assim poderá ser utilizada em algum momento em nosso código.
Para testar a eficiência do nosso método, podemos utilizar o console de saída para exibirmos o maior elemento encontrado em nosso vetor:




Código:
static void Main(string[] args)[size=10][/size]
{[size=10][/size]
Console.WriteLine("Qual será o tamanho do vetor?");[size=10][/size]
int tamanho = int.Parse(Console.ReadLine());[size=10][/size]
int[] ConjuntoDeNumeros = new int[tamanho];[size=10][/size]
int ValorRetornado = MaiorValor(ConjuntoDeNumeros);[size=10][/size]
Console.WriteLine("O maior elemento encontrado neste vetor é: {0}", ValorRetornado);[size=10][/size]
Console.ReadKey();[size=10][/size]
}



Debugue o código, escolha um tamanho qualquer para seu vetor, adicione valores dentro dele e obtenha o resultado do maior valor inserido a ele:

[TUTORIAL] O que são métodos/funções 7IbaElO

Veja que podemos utilizar esse método para quantos vetores quisermos analisar, sendo assim, crie um novo vetor com tamanho qualquer (eu criei com tamanho 3 para exemplificar).

Note que eu posso chamar o mesmo método para dois vetores distintos, apenas passando seus argumentos:




Código:
Console.WriteLine("Qual será o tamanho do vetor?");[size=10][/size]
int tamanho = int.Parse(Console.ReadLine());[size=10][/size]
int[] ConjuntoDeNumeros = new int[tamanho];[size=10][/size]
int[] OutroConjunto = new int[3];[size=10][/size]
int ValorRetornado = MaiorValor(ConjuntoDeNumeros);[size=10][/size]
Console.WriteLine("\n Trabalhando com outro vetor de tamanho 3 \n");[size=10][/size]
int OutroValorRetornado = MaiorValor(OutroConjunto);

Agora veja a utilidade de um retorno do método: Eu posso armazenar na variável do chamador do método o maior elemento encontrado neste vetor e com ele fazer comparações:




Código:
if (ValorRetornado > OutroValorRetornado)
{
Console.WriteLine("O elemento {0} do vetor 1 é maior que o elemento {1} do vetor 2", ValorRetornado, OutroValorRetornado);
}
else if (ValorRetornado < OutroValorRetornado)
{
Console.WriteLine("O elemento {1} do vetor 2 é maior que o elemento {0} do vetor 1", ValorRetornado, OutroValorRetornado);
}
else
{
Console.WriteLine("O elemento {0} do vetor 1 é igual o elemento do vetor 2", ValorRetornado);
}
Console.ReadKey();
}


Debugue mais uma vez este programa e veja o resultado. Ele vai comparar qual dos maiores elementos dos vetores é maior entre eles:

[TUTORIAL] O que são métodos/funções MVU6PVF

Por fim, você quem vai decidir de acordo com a sua necessidade se o método terá retorno, parâmetros e se será estático ou não.



Modificador de acesso do Método:
E como prometido, vou passar uma breve explicação das diferenças entre os acessos dos métodos em suas classes.
Veja um exemplo rápido de acessibilidade de um método:
No código abaixo temos duas classes definidas, uma delas contém o método “Exemplo” criado como public.





Código:
using System;[size=10][/size]
using System.Collections.Generic;[size=10][/size]
using System.Linq;[size=10][/size]
using System.Text;[size=10][/size]
namespace ConsoleApplication1[size=10][/size]
{[size=10][/size]
class Program // Classe program[size=10][/size]
{[size=10][/size]
static void Main(string[] args)[size=10][/size]
{[size=10][/size]
Teste.Exemplo(); /* Chamada do método sem nenhum tipo de erro, mesmo ele estando em outra classe diferente.[size=10][/size]
* Veja que para chamar o método de outra classe eu apenas preciso informar a classe que ele está inserido e chamar por seu nome.[size=10][/size]
* Como o método é estático, não preciso criar uma instância dele para sua chamada! */[size=10][/size]
}[size=10][/size]
}[size=10][/size]
class Teste // Nova classe criada, externa à classe 'Program'[size=10][/size]
{[size=10][/size]
public static void Exemplo() // Método público[size=10][/size]
{[size=10][/size]
// Instruções do método aqui[size=10][/size]
}[size=10][/size]
}
}



Agora vejamos o que acontece se eu trocar o modificador de acesso desse método de “public” para “private”:

[TUTORIAL] O que são métodos/funções W0CDnVq

Note que agora vemos um tracejado vermelho quando chamamos pelo método privado fora da classe de onde ele foi criado.
Perceba que o erro diz algo como “Teste.Exemplo() é inacessível por conta de seu nível de proteção”, ou seja, ele não pode ser chamado nessa classe porque ele é privado, só poderá ser chamado na classe em que foi criado.
Existem outros tipos de modificadores de acesso de um método, mas com certeza os principais são o “public” e “private”, porém no decorrer das aulas nós veremos os outros tipos e também saberemos para o que cada um é utilizado.


Final da aula sobre métodos:
Download PDF deste documento aqui.

Aula em vídeo:



MayLeone
MayLeone
Instrutor

Feminino PONTOS : 3813
REPUTAÇÃO : 602
Áreas de atuação : Unity & C#
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

http://compilemosfacil.blogspot.com.br

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] O que são métodos/funções

Mensagem por NKKF Sáb Jun 02, 2018 4:51 pm

AAAAAAARGH, É TÃO GRANDE QUE EU LEIO APENAS O TÍTULO.
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] O que são métodos/funções

Mensagem por BRGC Sáb Jun 02, 2018 4:53 pm

MDS, O CARA DEMOROU 2 DIAS PRA FAZER ISSO KKKK

Mas vai ser util alguma hora...
BRGC
BRGC
ProgramadorMaster

Masculino PONTOS : 3051
REPUTAÇÃO : 59
Idade : 20
Áreas de atuação : C#, C++, C, Flutter
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] O que são métodos/funções

Mensagem por MayLeone Sáb Jun 02, 2018 5:17 pm

BRGC escreveu:MDS, O CARA DEMOROU 2 DIAS PRA FAZER ISSO KKKK

Mas vai ser util alguma hora...
Que cara?
MayLeone
MayLeone
Instrutor

Feminino PONTOS : 3813
REPUTAÇÃO : 602
Áreas de atuação : Unity & C#
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

http://compilemosfacil.blogspot.com.br

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] O que são métodos/funções

Mensagem por PauloFR Sáb Jun 02, 2018 5:20 pm

MayLeone escreveu:
BRGC escreveu:MDS, O CARA DEMOROU 2 DIAS PRA FAZER ISSO KKKK

Mas vai ser util alguma hora...
Que cara?
Se você ler MayLeone e não prestar atenção no perfil, você assemelha o nome com uma pessoa do sexo masculino. por isso ele disse cara(é oque acredito ser)
PauloFR
PauloFR
ProgramadorMaster

Masculino PONTOS : 4184
REPUTAÇÃO : 376
Idade : 22
Áreas de atuação : C++/C# | Modelagem3D | PixelArt2D | Musica
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

https://www.schultzgames.com/u8329

Ir para o topo Ir para baixo

TUTORIAL Re: [TUTORIAL] O que são métodos/funções

Mensagem por NKKF Sáb Jun 02, 2018 7:01 pm

Kkkkkkk, mas acho que não, foi apenas uma confusão.
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras : [TUTORIAL] O que são métodos/funções Aad8pUi

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos