Você está na página 1de 19

C#

Módulo 5: Métodos e Parâmetros

1
Definição de métodos

using System;
class ExampleClass
{
static void ExampleMethod()
{
Console.WriteLine(“Example Method”);
}
static void Main()
{
ExampleMethod();
}
} 2
Definição de métodos

using System;
class ExampleClass
{
static void ExampleMethod()
{
Console.WriteLine(“Example Method”);
}
static void Main()
{
ExampleMethod();
}
} 3
Definição de métodos

using System;
class ExampleClass
{
static void ExampleMethod()
{
Console.WriteLine(“Example Method”);
}
static void Main()
{
ExampleMethod();
}
} 4
“return” sem parâmetros

static void ExampleMethod()


{
int numBeans;
//...

Console.WriteLine(“Hello”);
if (numBeans < 10)
return;
Console.WriteLine(“World”);
}

5
Variáveis locais

static void MethodWithLocals()


{
int x = 1;
ulong y;
string z;
...
}

Criadas quando o método é iniciado


Privadas ao método
Destruídas na saída

6
Variáveis de classe
class CallCounter_Good
{ Criadas quando a classe é chamada a
static int nCount = 0;
primeira vez
static void CountCalls() Têm a duração do programa
{
++nCount;
Console.Write(“Method called ” + nCount + “ time(s),”);
}
static void Main()
{
CountCalls();
CountCalls();
}
}

7
Conflitos entre variáveis
class ScopeDemo
{
static int numItems = 0;
static void Method1( )
{
int numItems = 42;
...
}
static void Method2()
{
numItems = 61;
}
}

8
Conflitos entre variáveis
class ScopeDemo
{
static int numItems = 0;
static void Method1()
{ int numItems = 42;
Console.WriteLine(numItems);
}
static void Method2()
{ numItems = 61;
Console.WriteLine(numItems);
}
static void Main()
{ Console.WriteLine(numItems);
Method1();
Method2();
}
} 9
Conflitos entre variáveis
class ScopeDemo
{
static int numItems = 0;
static void Method1()
{ Console.WriteLine(numItems); Erro de compilação
int numItems = 42;
Console.WriteLine(numItems);
}
static void Method2()
{ numItems = 61;
Console.WriteLine(numItems);
}
static void Main()
{ Console.WriteLine(numItems);
Method1();
Method2();
}
} 10
“return” com parâmetros
class ExampleReturningValue
{
static int TwoPlusTwo( )
{
int a,b;
a = 2;
b = 2;
return a + b;
}
static void Main()
{
int x = TwoPlusTwo();
Console.WriteLine(x);
}
}
11
Declaração de parâmetros

static void MethodWithParameters(int n, string y)


{ ... }

...

MethodWithParameters(2,”Hello, World”);

12
Passagem de parâmetros – in, in out, out

Tipo de passagem Reference Type

in Passagem por valor

in Passagem por referência


out

out Pârametros de output

13
Passagem de parâmetros por valor

static void AddOne (int x)


{
x++; // Increment x
}
static void Main ()
{
int k = 6;
AddOne(k);
Console.WriteLine(k);
}

14
Passagem de parâmetros por referência

static void AddOne (ref int x)


{
x++; // Increment x
}
static void Main ()
{
int k = 6;
AddOne(ref k);
Console.WriteLine(k);
}

15
Parâmetros de output

static int OutDemo (out int x)


{
x = 2;
return x;
}
static void Main ()
{
int n;
OutDemo(out n);
Console.WriteLine(n);
}

16
Parâmetros variáveis

static long AddList (params long[ ] v)


{
long total, i;
for (i = 0, total = 0; i < v.length; i++)
total += v[i];
return total;
}
static void Main ()
{
long x = AddList(63,21,84);
}

17
Métodos recursivos

static ulong Fibonacci(ulong n)


{
if(n <= 2)
return 1;
else
return Fibonacci(n-1) + Fibonacci(n-2);
}

18
Overload de métodos
class OverloadingExample
{
static int Add(int a, int b)
{
return a + b;
}
static int Add(int a, int b, int c)
{
return a + b + c;
}
static void Main()
{
Console.WriteLine(Add(1,2) + Add(1,2,3));
}
} 19

Você também pode gostar