W poniższym kursie będę prezentował tematy, które przerabiam w ramach Specjalizacji z uczniami 3 klasy Technikum Elektrycznego w Słupsku. Kurs ma służyć zarówno uczniom w powtórce materiału, jak i wszytkim zainteresowanym programowaniem Aplikacji Internetowych.
W JavaScript tworzy się głównie aplikacje uruchamiane w przeglądarce. Pojawiła się co prawda niedawno możliwośc uruchamiania programów w JavaScript poza przeglądarką (przy użyciu node.js) jednak to przeglądarka internetowa jest najczęsciej stosowanym środowiskim uruchomieniowym programów napisanych w JavaScript.
W języku C# tworzymy aplikacje uruchamiane przez środowisko .NET Framework. Mogą to być:
Jak widać z powyższego, język C# używany jest w innych zastosowaniach niż JavaScript, warto więc zapoznać się z tym językiem aby poszerzyć swoje możliwości programistyczne.
Podstawowa różnica: W jeżyku C# wszystkie zmienne mają określony typ. Typ zmiennej, inaczej niż w JavaScript nie może być zmieniany w trakcie działania programu. W JavaScript zmienna o tej samej nazwie mogła raz przechowywać liczbę, a następnie np. tekst. W C# jeśli zmienną zadeklarujemy jako tektową to nie możemy zmienić typu tej zmiennej na liczbę, musimy użyć innej zmiennej.
JavaScript | C# |
var i = 10; |
int i =10; |
a = "tekst" |
string a = "tekst" |
//zmiana typu i = "ala" |
// niedostępne |
b = 19.5; |
//pojedyńcza precyzja float b = (float)19.5; // podwójna prezycja double b = 19.5; |
var liczba = "liczba" |
//typ zmiennej wyliczany przez kompilator |
Tu będzie prosto, gdyż w C# operacje są niemal identyczne jak w JavaScript. Pamiętać jednak należy że jeśli wynikiem operacji jest nowa zmienna należy ją odpowiednio zadeklarować (podać typ zmiennej)
JavaScript | C# |
//łączenie tekstów |
string a = "ala"; |
i=10; |
int i = 10; |
i+=2; |
i+=2; |
//tekst+liczba
|
a = "wynik: "; |
Podobnie jak w przypadku operacji, różnice wynikają głónie z konieczności deklaracji zmiennych
JavaScript | C# |
for (i=0;i<10;i++) { |
for (int i=0;i<10;i++) { |
var i = 0; |
int i =0; |
if (i<10) { |
if (i<10) { |
switch (i) {
|
switch (i) { |
Operacje binarne używane przy warunkach, czyli && oraz || w języku C# zapisujemy identycznie jak w JavaScript
Język C# jest językiem w pełni obiektowym, oznacza to że nie można tworzyć funkcji poza klasami. Każda funkcja musi być metoda jakiejś klasy. Jeśli funkcja zupełnie nie zalezy od stanu obiektu, można tworzyć tzw. funkcje statyczne (static), nie wymagane jest wtedy powołanie obiektu przez wywołaniem funkcji.
W języku C# słowo kluczowe function jest pomijane, należy jednak podać typ wartości zwracanej przez funkcję.
JavaScript | C# |
function add(a,b) { |
public class Math { |
//wywołanie |
//wywołanie |
Jak widać należy podać zarówno typy argumentów funkcji jak i typ zwracanej wartości. Słowo kluczowe return oznacza dokładnie to samo i służy zwracaniu wartości. Jeśli funkcja nie zwraca żadnej wartości należy typ zwracanej wartości określić jako void.
JavaScript | C# |
function foo(a,b) { |
public class Math { |
//wywołanie |
//wywołanie |
Podobnie jak w przypadku zmiennnych stosujemy atrybuty wwidoczności takie jak public i private, jeśli chcemy aby funkcja była widoczna poza klasą to ustawiamy atrybut public. private oznacza, że funkcja bedzie widoczna tyko w wywołaniach z wewnątrz klasy.