Így érdemes:

Ha teljesen laikus vagy, akkor az első résztől olvasd el a honlapot, mert egymásra vannak építve az oldalak! Jobbra a menü... Magyar az, aki aktívan tesz valamit, bármit, akármit a magyarság megmaradásáért! Mindenki más csak valami más, bármit is állítson magáról..

6. rész: VS C#

Az oldal éppen szerkesztés alatt áll! 

Az utóbbi időben sok tanító videó, és írott tartalom vált hozzáférhetővé a Visual Stúdióval  C#
programozásáról.

Bár a nyelv nagyon széleskörű, és nem is a legegyszerűbb, de szinte mindent meg lehet vele csinálni, ehhez pedig az információ rendelkezésre áll!

Ha már eddig eljutottál az alapokat, illetve azt, hogy robotokat vezéreljünk vele, vagy egyszerű programokat csináljunk, könnyen meg lehet valósítani,

Az alábbiakban egy durva jegyzetet találsz, ha pedig már használtad a Visual Basic-et, gyakorlatilag rögtön tudod használni ezt is!

Könyvek és videók magyarul:

Elsőre innen nézzél meg néhány részt:
https://www.youtube.com/watch?v=JsLEG9WXCDk

Itt pedig megtalálod a szintaktikát (kódokat), igaz ez nem magyar, de tömör, érthető:
https://www.w3schools.com/cs/default.asp


Magyarúl könyvek:
https://csharptutorial.hu/docs/hello-vilag-hello-csharp/2-a-nyelv-alapjai/ismerkedes-a-visual-studio-val-elso-c-programunk/?fbclid=IwAR172Hh4ybkqtnKA1fAiIlzrZFIejXqMWrLGMCFI6LeoByzmZ6OATj3RQlA

https://mega.nz/folder/cZ10zbQI#KT-iiSP26pZewhrDolDk0A

C# Visual Studio programozásban az alap dolgok:


Többfajta alkalmazás van,
-konzol, amikor csak a fekete képernyőt használod,
-ablakos, amelynél a felhasználó gombokat nyomogathat,
ablakosból a
WPF, vagy a Windows Forma, ami a leginkább hasonlít talán a Visual Basicra.
és kisebb különbségek vannak a kettő között:
Például a WPF alkalmazásban a
label.IsEnable = true;
kódot használjuk, a Windows Formában pedig a Visual Basicnél is használt:
label.Enable = true;
--------------------------

kódok:

Windows formában:

Típus átalakítás: 

  public Form1()
        {
            InitializeComponent(); 
        }
        int szam = 0;
        private void label1_Click(object sender, EventArgs e)
        {
        }
        private void button1_Click(object sender, EventArgs e)
            szam = szam + 1;
            string szam2 = Convert.ToString(szam);
            label1.Text = szam2;
        }
    }
}
-----------------------------------
Timer használata a gomb kódjában:

timer:
timer1.Enabled = true;
timer1.Enabled = false;
----------------------------------




Ablak alkalmazás (WPF aplication):

gomb kódjában:

Label-nél:
label.Content = "Hello Világ";

Ezzel lehet bezárni a programot:
Enviroment.Exit(0);

MessageBox-nál:
MessageBox.Show("Hello Világ, "Hello");
vagy:
MessageBox.Show("Hello Világ, "Hello" MassageBoxButton.YesNo, MessageBoxImage.Stop);
vagy:
if (MessageBox.Show("Hello Világ, "Hello" MassageBoxButton.YesNo, MessageBoxImage.Stop); == MessageBoxResalt.Yes)
{
MessageBox.Show("Az igen gombot nyomtad meg");
}
vagy:
MessageBoxResult mbr = MessageBox.Show("Hello Világ, "Hello" MassageBoxButton.YesNo, MessageBoxImage.Stop);
if (mbr( == MessageBoxResult.Yes){
MessageBox.Show("Az igen gombot nyomtad meg");
}
if (mbr( == MessageBoxResult.Yes)
{
Enviroment.Exit(0);
}

TextBox (adatbevitel) használata:

Adat kiolvasása és kiírása label-re:
string str = tb_be.Text;
label.Content = str;

számmal:
int szam;
if(int.TryParse(tb_be.Text, out szam))
{
label.Content(2 + szam).ToString());
else
(
label.Content("nem szám");
)
}

Példaproject:
Egy egyszerű soros monitor...
https://kodolj.blogspot.com/p/heat-engine-watt-monitor.html

Példaprogramok:
Arduino:
Adat írása és kiolvasása az arduinoból:


Arduino vezérlése :

Arduino kód:
int LED = 11;
int counter = 0;
int counter2 = 0;
void setup ()
{
Serial.begin(9600);
pinMode(LED,OUTPUT);
}
void loop()
{
int data = Serial.read();
switch (data) {
case '1' : digitalWrite (LED, HIGH);
counter = counter +1;
break;
case '2' : digitalWrite(LED, LOW);
counter = counter +1;
break;
}
if (counter != counter2)
{
  Serial.println (counter);
  }
  counter2 = counter;
}

ez a Serial monitorba is kipróbálható....
Visual kód ( wpf alkalmazás):
Két gomb, ki és be.... a formra!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO.Ports;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private SerialPort myport;
        string data = "0";

        public MainWindow()
        {
            InitializeComponent();
            innit();
         
         

        }

        private void onbutton_Click(object sender, RoutedEventArgs e)
        {
            myport.Write("1");
            onbutton.IsEnabled = false;
            offbutton.IsEnabled = true;
            data = myport.ReadLine();
            label.Content = data;

        }

        private void innit()
        {
            try
            {
                myport = new SerialPort();
                myport.BaudRate = 9600;
                myport.PortName = "COM4";
                myport.Open();

            }
            catch (Exception)
            {
                MessageBox.Show("Error");
            }
            onbutton.IsEnabled = true;
            offbutton.IsEnabled = false;
        }

        private void offbutton_Click(object sender, RoutedEventArgs e)
        {
            myport.Write("2");
            onbutton.IsEnabled = true;
            offbutton.IsEnabled = false;
            data = myport.ReadLine();
            label.Content = data;

        }
    }
}
-----------------------------------------


Combobox port c# windows form:
(két gom, egy soros széria, és egy combobox van rádobva a formra)
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;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                comboBox1.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());
                comboBox1.SelectedIndex = 0;
                serialPort1.BaudRate = (9600);
                serialPort1.ReadTimeout = (2000);
                serialPort1.WriteTimeout = (2000);
            }
            catch ( Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.Open();
                serialPort1.WriteLine("on");
                serialPort1.Close();
            }
            catch ( Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.Open();
                serialPort1.WriteLine("off");
                serialPort1.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                serialPort1.PortName = comboBox1.Text;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
Arduino kódja:
...
---------------------------------------------------


If - else
swich
literációk, ciklusok,
prefix, postfix, túlcsordulás
random
tömbök
alpogramok
eljárások
függvények
billentyűzet kezelés
stingkezelő metódusok
enum
kivételkezelés
list
array list
linkedlist
szótár, = kulcs-érték pár
verem, = last in first elv , vagyis amit utéljára rakunk bele, az jön ki elsőnek.
sor,= first in first elv, vagyis amit előszőr rakok be, azt tudom előszőr kivenni.
halmazok, = olyan lista, amiben azonos elemek nem lehetnek (pl. lottó programnál jó). és halmazok uniója, kivonás, metszete.
fájlkezelés = IO vagyis szöveges fájlok írása olvasása (txt és utf8, hogy bírja a magyar ékezetet)
struktúra, = különböző típusú adatok tárolása egy adategységben (pl. név, életkor, lakhely)
Csonkolt és, vagy = Csonkolt vagy,és  = kiértékeli a teljes feltételt - (nem fogjuk használni...)
háromoperandusú (ternális) operátor = ? :
bitenkénti operátorok = bináris számokat kényszerítünk ki, és azokkal csinálunk műveleteket.
var = típus (pl. string) helyettesítő, de értéket kell adni hozzá deklaráláskor és a gép eldünti milyen típusú legyen a változó
goto = egy azonosítási címkére ugrik és onnan folytatja
OOP = objektum orientált programozás = dolgok osztályozása
konstruktor = paraméterek () beállító osztálya?
destruktor = szemétgyűjtő eltávolítja az objekumunkat, mert nincs rá hivatkozás