Z JavaScript do C#

Aplikacje Internetowe: Kurs › Z JavaScript do C#

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.

Rodzaje aplikacji

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ć:

  • aplikacje konsolowe - interfejs tekstowy, aplikacja taka przypomina stare programy tworzone dla środowiska DOS.
  • aplikacje WebForms - klasyczne aplikacje uruchamiane w systemi Windows wykorzystujące stadardowe kontrolki Windows takie jak przycisk, menu, zakłądki itp.
  • aplikacje WPF - aplikacje graficzne uruchamiane w systemie Windows, nie korzystają ze standardowych kontrolek Windows, zamiast nich uzywane są elementy graficzne rysowane wektorowo. Podstawowy sposób tworzenia aplikacji dla systemów Windows 8 (i zapewne nowszych)
  • aplikacje Internetowe - aplikacje uruchamiane na serwerze i komunikujące się z klientem poprzez przeglądarkę internetową. Serwer generuje strony internetowe wypełniając ich treśc w sposób dynamiczny (zależnie od wyników działania programu)
  • inne komponenty, biblioteki dll, serwisy Windows itp.

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.

Deklaracje zmiennych

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
var liczba = "liczba"

Operacje

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
a = "ala";
b= " ma kota";
x = a + b;
string a = "ala";
string b= " ma kota";
string x = a + b;
i=10;
i++; //zwiękrszenie
--i; //zmniejszenie
int i = 10;
i++;
--i;
i+=2;
i/=2;
i*=2;
i-=2;
i+=2;
i/=2;
i*=2;
i-=2;
//tekst+liczba
a = "wynik: ";
b = 10;
x = a + b;
//b przed dodaniem jest zamienione na tekst

 

a = "wynik: ";
b = 10;
x = a + b;
//b przed dodaniem zostaje zamienione na tekst

Pętle i warunki

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;
while (i<10) {
...
i++;
}
int i =0;
while (i<10) {
...
i++;
}
if (i<10) {
...
} else {
...
}
if (i<10) {
...
}; else { //niezbędny ; przed else
...
}
switch (i) {
case 0: ....; break;
case 1: ....; break;
default: ....; break;
}

 

switch (i) {
case 0: ....; break;
case 1: ....; break;
default: ....; break;
}
 

Operacje binarne używane przy warunkach, czyli && oraz || w języku C# zapisujemy identycznie jak w JavaScript

Funkcje i procedury

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) {
return a+b;
}
public class Math {
public int add(int a,int b) {
return a+b;
}
//lub
static public int sadd(int a,int b) {
return a+b;
}

}
//wywołanie
var c = add(5,10);
//wywołanie
Math m = new Math();
int c = m.add(5,10);
//lub statycznie
int c = Math.sadd(5,10);
 

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 {
public void foo(int a,int b) {
....
;
}

}
//wywołanie
foo(5,10);
//wywołanie
Math m = new Math();
m.foo(5,10); 


Podobnie jak w przypadku zmiennnych stosujemy atrybuty wwidoczności takie jak publicprivate, 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.

 

Komentarze

Komentarze do Z JavaScript do C# na it.jursza.com