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:
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:
- ČLENSKÉ PROMĚNNÉ (globální) – mohu definovat ve třídě, existují po celou dobu existence třídy
- 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