Tag Archives: C# Language

Novinky v C# 11, [ASP].NET 7 a Blazor – záznam, slides a dema [Robert Haken, FreshIT Praha 2023]

Záznam z přednášky pro konferenci FreshIT Praha z 30. března 2023, kde jsem povídal o novinkách v platformě .NET v poslední verzi 7.

Dema

Slides

Nullable Reference Types [Jiří Kanda, HAVIT Vzdělávací okénko, 24.10.2019]

Záznam ze Vzdělávacího okénka HAVIT z 24. října 2019, kde Jiří Kanda povídal o nullable reference types v C# 8.0 a jejich využitelnosti na našich projektech.

Nahrávka je publikována na našem HAVIT YouTube Channelu.

C# – Přehled konstrukcí pro začátečníky 1

Základní struktura (konzolové) aplikace

using System;

namespace ConsoleApp
{
	class Program
	{
		static void Main(string[] args)				// metoda, která se spustí po startu aplikace
		{
			Console.WriteLine("Hello World!");		// výpis textu na obrazovku 
		}
	}
}

Práce s konzolí – vstup, výstup

Console.Write("Blah, blah.");				// výpis textu bez odřádkování
Console.WriteLine("Hello World!");			// výpis textu s odřádkováním
string s1 = Console.ReadLine();				// přečtení řádku do proměnné s1
Console.WriteLine($"Ahoj {s1}, vítám tě!");	// skládání textu s proměnnými pomocí $

Proměnné, datové typy a jejich konverze

string text = "Můj text";       // text
char c = 'a';                   // znak
int i = 10;                     // celé číslo (Int32)
decimal d = 10.20m;             // desetinné číslo
double dbl = 3.14159;           // číslo s plovoucí desetinnou čárkou
bool b = true;                  // logická hodnota - pravda / nepravda
var x = 10;                     // zkrácený zápis, typ proměnné je automaticky odvozen
int i2 = Convert.ToInt32(text); // Convert zařídí konverzi mezi základními typy 

Aritmetické operace, matematika

i = 1 + 10;
i = 10 - 1;
i = 10 / 2;		// dělení
i = 10 * 20;    // násobení
i = 11 % 7;     // zbytek po celočíselném dělení (= 4)
i++;            // přičte jedničku
i--;            // odečte jedničku

// Math = matematické funkce
i = Math.Abs(-10);      // absolutní hodnota (10)
d = Math.Round(1.25);   // zaokrouhlední (1)
d = Math.Pow(2, 4);     // mocnina (16)
i = Math.Min(1, 5);		// minumum (Max je maximum)

Podmínka, přepínač

if (i == 10)
{
	// podmínka splněna
}
else
{
	// podmínka nesplněna
}

switch (i)
{
	case 1:
		// i je 1
		break;
	case 2:
	case 3:
		// i je 2´nebo 3
		break;
	default:
		// v ostatních případech
		break;
}

Porovnávání, logické operace do podmínek

if (a == b)						// rovnají se
if (a != b)						// nerovnají se
if (a < b)						// menší než
if (a <= b)                     // menší nebo rovno

if ((a == 1) && (b == 2))		// a zároveň (AND)
if ((a == 1) || (b == 2))		// nebo (OR)
if (!(a == 1))					// negace (NOT)

Cykly

for (int i = 0; i < 10; i++)
{
	// opakuj 10x
}

while (i < 10)
{
	// opakuj, dokud je podmínka splněna
}

do
{
	// opakuj  (alespoň jednou), dokud je podmínka splněna
}
while (i < 10);

Vytvoření vlastní metody

static void Main(string[] args)
{
	int vysledek = Spocti(10, 15);	// vysledek bude 40
}

static int Spocti(int a, int b)     // void, pokud žádný výsledek nevracíme
{
	int c = a + 2 * b;
	return c;
}

C# 8.0 Novinky a C# 9.0 Candidates [WUG Days Brno, 15.9.2019]

Před pár hodinami byl vydán finální release .NET Core 3.0 a C# 8.0. Přináším Vám začerstva záznam z mé přednášky pro konferenci WUG Days Brno z 15. září 2019, kde jsem ukazoval chystané novinky v C# 8.0:

  • Index, Range
  • Switch Expressions
  • Pattern Matching
  • Static Local Function
  • Using Declarations
  • Nullable Reference Types
  • Async Streams, Async Dispose
  • (Target Typed New)
  • Default Interface Methods
  • Null Coallescing Operator
  • Readonly Struct Members
  • Disposable ref Structs
  • Interpolated Verbatim Strings
  • Unmanaged Constructed Types

…a plány na C# 9.0:

  • Primary Constructors, Records
  • pattern-based with expressions
  • Top level statements and member declarations
  • Covariant return types
  • Nullable-Enhanced Common Type
  • Target typed null coalescing (??) expression
  • and, or, and not patterns
  • Switch expression as a statement expression
  • Comparison operators in switch cases
  • Native-Sized Number Types
  • Extension everything

Slides a dema:

Nahrávka je publikována na našem HAVIT YouTube Channelu.

Programátorská hádanka: this = new Foo();

Dokážete si představit situaci, kdy následující kód půjde zkompilovat a poběží?

public void Reset()
{
    this = new Foo();
}

Řešení: https://dotnetfiddle.net/JheuMu.

C# 8.0, Visual Studio a .NET vNext – záznam, slides a dema [TechEd DevCon Praha 2019]

Záznam z přednášky pro konferenci TechEd DevCon Praha ze 14. května 2019.

C# ref returns [Jiří Činčura, HAVIT Vzdělávací okénko 28.3.2019]

Záznam ze Vzdělávacího okénka HAVIT ze 28. března 2019, kde Jiří Činčura povídal o ref returns v C#.

Tentokrát v angličtině pro lepší zapojení našich zahraničních pracovníků.

C# 8.0 – Přehled novinek [HAVIT Vzdělávací okénko, 21.2.2019]

Záznam ze Vzdělávacího okénka HAVIT z 21. února 2019, kde jsem ukazoval chystané novinky v C# 8.0:

  • Index, Range
  • Switch Expressions
  • Pattern Matching
  • Static Local Function
  • Using Declarations
  • Nullable Reference Types
  • Async Streams, Async Dispose
  • Target Typed New
  • Default Interface Methods
  • Null Coallescing Operator

Nahrávka je publikována na našem HAVIT YouTube Channelu.

.NET Tuple types, Deconstruction [Jiří Kanda, HAVIT Vzdělávací okénko, 14.2.2019]

Záznam ze Vzdělávacího okénka HAVIT ze 14. února 2019, kde Jirka Kanda povídal o tuplech, deconstruction a jejich použití pro vícenásobné návratové hodnoty z metod.

Nahrávka je publikována na našem HAVIT YouTube Channelu.