Esta é uma lista de exemplos de código C#, que demonstram a funcionalidade da linguagem e suas características.
Programa Olá Mundo Segue abaixo uma implementação do programa Olá Mundo em C#:
using System;
public class HelloWorld { public static void Main()
Console.WriteLine("Olá, Mundo!");
A linha 1 inclui os objetos do espaço de nomes System, pois utilizaremos um objeto deste para escrever na tela. A linha 3 define a classe HelloWorld; ela é pública, o que significa que pode ser utilizada por outros projetos sem restrições. A linha 5 é o ponto de entrada do programa quando executado a partir da interface de linha de comando. Este método também pode ser chamado de outro código utilizando a sintaxe HelloWorld.Main(). A definição public static void indica que o método Main é, respectivamente, público (pode ser invocado por outras classes), estático (pertence à classe e não a um objeto específico, uma instância específica) e sem valor de retorno. A linha 7 escreve a mensagem na linha de comando. Console é um objeto do sistema que representa a linha de comando, através da qual o programa pode obter e mostrar texto. O método WriteLine (traduzindo literalmente, EscreverLinha) de é executado, acarretando que o literal passado como parâmetro seja mostrado na saída.
Algoritmo de Trabb Pardo-Knuth
using System; using static System.Linq.Enumerable; using static System.Math;
class Tpk { static double F(double t) => Sqrt(Abs(t)) + 5 * Pow(t, 3);
static void Main()
var a = Range(0, 11).Select(_ => double.Parse(Console.ReadLine())).ToArray(); foreach (var i in Range(0, a.Length).Reverse())
var y = F(a[i]); Console.WriteLine(y > 400 ? $"{i} TOO LARGE" : $"{i} {y}");
Ponteiros Segue um exemplo simples de como usar ponteiros usando C#:
using System;
class Test { unsafe static void WriteLocations()
int *p; int i; i = 10; p = &i;
string addr; addr = int.Format((int)p, "X");
Console.WriteLine(addr); Console.WriteLine(*p);
*p = 333;
Console.WriteLine(i);
i = *(&i) + 10;
Console.WriteLine(i);
static void Main()
WriteLocations();
Herança Segue exemplo do uso de herança de classes:
using System;
public class Animal { private string raca;
public Animal(string raca)
Raca = raca;
public string Raca
get { return raca; } set { raca = value; }
public void Respirar()
// …
public class Cachorro : Animal { public Cachorro(string raca) : base(raca) {} }
public class Application { static void Main()
Cachorro cachorro = new Cachorro("beagle");
cachorro.Respirar();
Conversão de tipo Segue exemplo de conversão de diferentes tipos de dados:
// converte uma string para um byte byte numero8bits = Convert.ToByte("123");
// converte uma string para um short short numero16bits = Convert.ToInt16("1024");
// converte uma string para um int int numero32bits = Convert.ToInt32("34123");
// converte uma string para um double double numeroReal64bits = Convert.ToDouble("132123.12455");
// converte um inteiro para uma string string palavra1 = Convert.ToString(123);
// outra forma de se obter o mesmo resultado anterior string palavra2 = 123.ToString();
Vetores public static void Main(string[] args) { int[] primos = {2,3,5,7,11,13,17,19,23,29,31};
int[] somas = new int;
for(int i = 0; i < 11; i++)
somas[i] = 0;
for(int j = 0; j <= i; j++)
somas[i] += primos[j];
Console.Write("somas: ", somas);
for(int i = 0; i < 11; i++)
Console.Write(" {0}", somas[i]);
Console.WriteLine(); }
Passagem de parâmetros Saída do algoritmo ao ladoValor de x1 dentro do método Alterar: 10 Valor de x1 após a execuçao do método Alterar: 10
Valor de x2 dentro do método AlteraLocal: 10 Valor de x2 após a execuçao do método: AlteraLocal: 0
Valor de x2 dentro do método ReferenciaForcada: 20 Valor de x2 após a execuçao do método: ReferenciaForcada: 20
Valor de z dentro do método AlterarSaida: 20 Valor de z após a execuçao do método: AlterarSaida: 20 public struct Valor { public int x2; }
public class Referencia { public int x1; }
class Programa { // Objetos são passados por referência. public static void Alterar(Referencia r)
r.x1 = 10; Console.WriteLine("Valor de x1 dentro do método Alterar: " + r.x1);
// Estruturas são passadas por valor public static void AlteraLocal(Valor v)
v.x2 = 10; Console.WriteLine("\nValor de x2 dentro do método AlteraLocal: " + v.x2);
// Forçando a passagem por referência. A variável passada precisa ser iniciada. public static void ReferenciaForcada(ref Valor v)
v.x2 = 20; Console.WriteLine("\nValor de x2 dentro do método ReferenciaForcada: " + v.x2);
// Forçando a passagem por referência. Nesse caso a variável passada não precisa ser iniciada. public static void AlterarSaida(out int y)
y = 20; Console.WriteLine("\nValor de z dentro do método AlterarSaida: " + y);
public static void Main()
Valor v1 = new Valor(); Referencia r1 = new Referencia(); int z;
v1.x2 = 0; r1.x1 = 0;
Alterar(r1); Console.WriteLine("Valor de x1 após a execução do método Alterar: " + r1.x1);
AlteraLocal(v1); Console.WriteLine("Valor de x2 após a execução do método: AlteraLocal: " + v1.x2);
ReferenciaForcada(ref v1); Console.WriteLine("Valor de x2 após a execução do método: ReferenciaForcada: " + v1.x2);
AlterarSaida(out z); Console.WriteLine("Valor de z após a execução do método: AlterarSaida: " + z);
Ver também C#
E !Exemplos Codigos