Objekty a třídy v C#

V každém objektu mohou být definovány:

  • Vlastnosti
  • Události
  • Metody

Vlastnost

= vidíme v okně vlastností např. BackColor, Text, Width…

Události

= vidíme v okně událostí např. Click, MouseHover, Enter…

Metoda (= funkce)

= pojmenovaný blok kódu, který obsahuje řadu příkazů. Program způsobí spuštění příkazů voláním metody a zadáním požadovaných argumentů metody.V jazyku C se používá pojem funkce, v jazyku C# pojem metoda.

Příklad:

Objekt TextBox – mohu jich mít v projektu několik, mají stejné vlastnosti, události i metody 

  • vlastnosti – Text, ReadOnly, BackColor…
  • události – TextChanged, MouseHover…
  • metody – Cut, Copy, Show…

TŘÍDA (myšleno tím druh objektů)

  • třída TextBoxů, Labelů, Buttonů…
  • má jméno např. TextBox, Label, Button…
  • jména tříd jsou shodná se jmény příslušných objektů (komponent, ovládacích prvků) v ToolBoxu= Panelu nástrojů
  • funguje jako šablona objektů

INSTANCE TŘÍDY = 1 případ = 1 konkrétní výskyt dané třídy = 1 konkrétní objekt

Např. ButtonPozdrav je instance třídy Button, TextBoxJmeno je instance třídy TextBox…

Hledání v dokumentaci MS:

Třída Button

Třída Pen

obsahuje informaci o:

  • Konstruktory = metody, které se volají při vytváření nového objektu -> v C# vždy shodné se jménem třídy!
  • Vlastnosti
  • Metody

Někdy jsou třídy stejně pojmenované (např. TextBox – jeden pro aplikace windows a druhý pro webové stránky – nutno rozlišit!), proto se organizují do větších celků tzv. jmenných prostorů např. System.Windows.Forms

Použití tříd z vybraných jmenných prostorů se ve zdrojovém kódu zapisuje úvodními řádky začínajícími slovy using

např.:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

Příklad použítí tříd:

private void oknoProgramu_Paint(object sender, PaintEventArgs e)
{
Graphics kp = e.Graphics;

// Vytvoříme nové pero
Pen modréPero = new Pen(Color.Blue);
kp.DrawLine(modréPero, 20, 0, 20, 100);

// Změníme tloušťku pera na 10 pixelů
modréPero.Width = 10;
kp.DrawLine(modréPero, 40, 0, 40, 100);

// Změníme barvu pera na světle modrou
modréPero.Color = Color.LightBlue;
kp.DrawLine(modréPero, 60, 0, 60, 100);

// Další pero dvouparametrickým konstruktorem
Pen červenéPero = new Pen(Color.Red, 20);
kp.DrawLine(červenéPero, 100, 0, 100, 100);
}
 private void panelŽlutá_Paint(object sender, PaintEventArgs e)
{
Graphics kp = e.Graphics;
 // Žlutou barvu do proměnné (autogenerující vlastnost)
Color žlutáBarva = Color.Yellow;
Pen žlutéPero = new Pen(žlutáBarva);
kp.DrawEllipse(žlutéPero, 0, 0, 70, 70);
}

private void panelMíchaná_Paint(object sender, PaintEventArgs e)
{
Graphics kp = e.Graphics;

try
{
// Hodnoty z textových polí do číselné formy
int R = Convert.ToInt32(poleMíchanáR.Text);
int G = Convert.ToInt32(poleMíchanáG.Text);
int B = Convert.ToInt32(poleMíchanáB.Text);

// Namíchání barvy (autogenerující metoda)
Color míchanáBarva = Color.FromArgb(R, G, B);

// Pero z míchané barvy (volání konstruktoru)
Pen pero = new Pen(míchanáBarva);

// Elipsa připraveným perem
kp.DrawEllipse(pero, 0, 0, 70, 70);
}
catch
{
}

2 druhy proměnných:

  1. ČLENSKÉ PROMĚNNÉ (globální) – mohu definovat ve třídě, existují po celou dobu existence třídy
  2. LOKÁLNÍ PROMĚNNÉ

Použití např.program, který spočítá, kolikrát jsme stiskli tlačítko (nutno členská proměnná na počet stisků)

namespace Počítání_stisků
{
public partial class Form1 : Form
{
int početStisků = 0;

public Form1()
{
InitializeComponent();
}

Vytvoření verze projektu pro intalaci k distribuci:

Sestavit -> Publikovat NázevProjektu