C# od początkującego do ekperta #001

in #polish7 years ago (edited)

Cześć! Właśnie wystartowałem z moją pierwszą serią poradników Steemit. Zacząłem programować siedem lat temu (z kilkoma przerwami) i dzisiaj znam C# na poziomie średnio-zaawansowanym. Dzięki mojemu nauczycielowi w liceum zdecydowałem, że będę zdoywał nową wiedzę poprzez nauczanie programowania innych. Mam nadzieję, że podczas tej serii poradników nauczę was jak pisać w C# od podstaw, aż po bardziej zaawansowane rozwiązania.

Podczas pisania tej serii używam Visual Studio 2017.

Podstawy:

 C# jest językiem zorientowanym obiektowo. To znaczy, że nie oferuje żadnych globalnych zmiennych czy funkcji. Wszystko zawarte jest w klasach. Ale czym są klasy? Klasy to definicje obiektów. Na przykład możemy mieć klasę o nazwie Jablko. W naszym programie może być wiele obiektów które będą instancjami tej klasy. Najpierw jednak musimy stworzyć nasz obiekt:

Jablko jablko = new Jablko();

Dodatkowo każdy taki obiekt posiada własne atrybuty (kolor, kształt, waga). Wszystkie one są definiowane w klasie, więc jeżeli chcesz je zmienić musisz to zrobić dla konkretnego obiektu. Na przykład aby zmienić wagę naszego jabłka (zmieniamy ją na 2kg, gdzie jednostka jest umowna :D) musimy wpisać:

jablko.waga = 2;

Ale zanim zaczniemy pracować z klasami powinniśmy nauczyć się o strukturze naszego programu. Aby utworzyć nowy projekt w VS (Visual Studio) wybieramy: Plik -> Nowy -> Projekt... -> Aplkiacja konsolowa (.NET Framework). Powinniśmy zobaczyć kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ProgramName
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Ok, teraz wytłumaczę co to wszystko znaczy.

Najpierw mamy using System; (i kilka innych, podobnych do tego). Słowo using  używane jest do dołączenia do naszego projektu nowej przestrzeni nazw (namespace).

Następnie mamy namespace ProgramName { … } – jest to zbiór wszystkich klas, które będziemy tworzyć.

class Program {…} - to natomiast jest nasza pierwsza klasa. Zawiera ona wszystkie dane i metody, z których nasz program będzie korzystał.

Wewnątrz klasy Program mamy static void Main(string[] args) {…}. Właśnie stąd nasz program startuje. Metoda Main określa co klasa robi po wystartowaniu programu (jest to główna metoda naszego programu).

Kiedy znamy podstawową konstrukcje naszego programu możemy zacząć pisać kod. Wewnątrz metody Main wpisz:  

Console.WriteLine("Hello World!");
Console.ReadLine();

WriteLine jest metodą klasy Console zdefiniowanej w przestrzeni nazw System. Powoduje ona wypisanie zawartej w nawiasach wiadomości na ekranie konsoli.

Console.ReadLine() powoduje, że program czeka na naciśnięcie przycisku. Zapobiega to szybkiemu wyłączeniu się programu tuż po starcie i wykonaniu wcześniejszego polecenia.

Aby odpalić nasz program naciskamy przycisk Start (możemy też użyć klawisza F5).

To wszystko! Po odpaleniu programu powinniście zobaczyć linię "Hello World" wypisaną w oknie konsoli.

Sort:  

VOTEME! DISABLED
The budget of 0.3 SBD for rewarding voters has been used. Thanks @cardboard !

Widzę takie podejście trochę standardowe w nauczaniu, które nigdy mnie nie przekonuje. Ja bym chciał usłyszeć na początek: dlaczego ten język, bo co on umie, czego inne nie potrafią i co z jego pomocą mogę zrobić po jakim czasie i w jakim środowisku.

Plan jest taki, że drugi poradnik będzie poświęcony jeszcze rzeczom trochę teoretycznym, ponieważ są pewne podstawy, których nie można pominąć. Później praktycznie od razu przejdę do czegoś bardziej praktycznego, pokazując do czego można ten język wykorzystać. Ogólnie to myślałem nad napisaniem własnej sieci neuronowej i pokazaniem jej zastosowania (ale są to raczej plany na nieco dalszą przyszłość :D ). Najpierw chce jednak przebrnąć między innymi przez formatowanie i sprawdzanie tekstu (np. regex) i trochę o sortowaniu i wybieraniu danych z tablic (ewentualnie baz danych w linq). Możliwe też, że razem z @avenal zaczniemy tworzyć coś w unity (albo kontynuować tworzony już projekt, chociaż wtedy postaramy się pewnie wyjaśnić co już zostało zrobione i jak działa). Gdybyś miał jakieś pomysły co chciałbyś zobaczyć/przeczytać, to jestem otwarty na sugestię.

A będzie tutorial ze zrobieniem prostego servera REST api? Bo byłbym zainteresowany

Aktualnie planowałem przejść przez podstawy i wejść w regex i linq, ale możliwe, że zrobię coś o REST

Dzięki za dzielenie się wiedzą :) w wolnej chwili sprawdź https://utopian.io
A ja tu sobie tylko coś protestuję... votemetest! 0.3

Na utopian.io konto już mam tylko nie miałem pewności czy można tam zamieszczać tego typu treści