Na wszystkie pytania, będę starał się odpowiedzieć w miarę krótko i konkretnie. Niektóre odpowiedzi można bardziej rozwinąć, ale w takich przypadkach będę też odsyłał Cię do odpowiednich źródeł.
1) Czym jest C#?
C# jest to pierwotnie opracowany przez Microsoft język z rodziny .NET. Powstał na bazie języków C++ oraz C. Początkowo C# był bardzo podobny do Javy, ale z biegiem czasu, podobieństwo staje się coraz mniejsze. C# jest popularnym, wysokopoziomowym językiem programowania, jest językiem ogólnego przeznaczenia, to znaczy, że można pisać w nim różne aplikacje, to jest aplikacje webowe, desktopowe, mobilne, a nawet gry. Program napisany w języku C# jest kompilowany do języka Intermediate Language (IL), czyli kodu pośredniego, wykonywanego w środowisku uruchomieniowym .NET.
2) Czym jest .NET Framework?
.NET Framework jest to platforma programistyczna opracowana przez Microsoft, wydana w roku 2002. Obejmuje CLR, czyli środowisko uruchomieniowe, na którym działają napisane programy, a także biblioteki klas, które implementują typowe funkcjonalności, wykorzystywane w aplikacjach .NET. Wspomniane biblioteki to zbiór funkcjonalności i metod, które ułatwiają pracę programistów. Dzięki którym możesz użyć gotowych już implementacji. Zadaniem platformy .NET jest między innymi zarządzanie kodem aplikacji, pamięcią i zabezpieczeniami. Programy na platformę .NET mogą być pisane w różnych językach, takich jak C#, F#, Delphi 8, Visual Basic .NET, COBOL, Eiffel, Fortran, Lisp, Perl.
3) Jakie są różnice pomiędzy .NET, .NET Core, a .NET Framework?
.NET Framework powstał w 2002 i jest to platforma programistyczna, na której można tworzyć tylko aplikacje na windows. Natomiast .NET Core jest takim jakby następnikiem, został wydany w roku 2016. Jest to otwarte oprogramowanie, dzięki któremu, możesz tworzyć i uruchamiać swoje aplikacje napisane między innymi w C# na platformach Windows, Linux i macOS. Ponadto w .NET corze zostały zoptymalizowane biblioteki i środowisko uruchomieniowe, także aplikacje tworzone w .NET corze są jeszcze bardziej wydajne. Kod źródłowy .NET corea jest otwarty i udostępniony na githubie. W roku 2020 został wydany .NET 5, który można powiedzieć, połączył .NET Framework z .NET Core'em. Teraz co roku ma być wypuszczana nowe wersja, czyli w tym roku .NET 6, w przyszłym .NET 7 itd.. Także na pewno wprowadzi to trochę porządku, ponieważ różne wersje .NET Frameworka i .NET Core'a wprowadzały trochę zamieszania w ostatnich latach.
4) Czym są namespace'y w C#?
Dzięki namespace, czyli przestrzeni nazw w C# może lepiej poukładać kod w C# i wprowadzić separację kodu. Przestrzenie nazw można traktować jako takie pudełko, które składa się z innych przestrzeni nazw, klas, metod, właściwości itd. W celu zdefiniowania przestrzeni nazw używamy słowa kluczowego namespace: Przykład:
namespace App
{
class Program
{
static void Main(string[] args)
{
Console.ReadLine();
}
}
}
Czyli nasza klasa Program jest dostępna wewnątrz przestrzeni nazw App. Jeżeli natomiast chcielibyśmy użyć tej klasy w innym namespace'ie, to musimy podać pełną nazwę klasy wraz z przestrzenią nazw, lub dodać odwołanie za pomocą słowa kluczowego using.
using app;
5) Jakie są typy komentarzy w C#?
W C# mamy 3 typy komentarzy. Są to komentarzy pojedynczej linii:
//Single line comments
Komentarze dla wielu linii:
/*
Multi line comments
…
Multi line comments
*/
Oraz komentarze do dokumentacji
/// <summary>
/// Method return sum of 2 parameters
/// </summary>
/// <param name="number1">Number 1</param>
/// <param name="number2">Number 2</param>
/// <returns>Sum</returns>
public int Sum(int number1, int number2)
{
return 1;
}
Można z nich utworzyć dokumentacje w XML, a także są wyświetlane jako podpowiedzi w IntelliSense.
6) Jakie są rodzaje pętli w C#?
W C# mamy 4 rodzaje pętli. Są to pętle for, while, do while oraz foreach.
for (int i = 0; i < length; i++)
{
}
while (true)
{
}
do
{
} while (true);
foreach (var item in collection)
{
}
7) Jaka jest różnica pomiędzy pętlą while, a do while?
Podstawowa różnica pomiędzy pętlą while, a do while, jest taka, że pętla do while zawsze wykona się przynajmniej 1 raz, ponieważ najpierw jest wykonywana logika, a dopiero później jest sprawdzany warunek. Natomiast pętla while, może nie zostać wykonana ani 1 raz, jeżeli już na starcie warunek nie jest spełniony.
while (1 < 0)
{
Console.WriteLine("x");
}
//Wynik:
do
{
Console.WriteLine("x");
} while (1 < 0);
//Wynik: "x"
8) Jaka jest różnica pomiędzy słowem kluczowym continue, a break?
Oba słowa kluczowe możemy użyć wewnątrz iteracji pętli. Jeżeli w iteracji wykona się continue, to zostanie pominięta obecna iteracja i przejdziemy do kolejnej. W przypadku break zostanie zakończona nie tylko obecna iteracja, ale cała pętla.
for (int i = 0; i < 10; i++)
{
if (i == 5)
continue;
Console.WriteLine(i);
}
//Wynik: 0, 1, 2, 3, 4, 6, 7, 8, 9
for (int i = 0; i < 10; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
//Wynik: 0, 1, 2, 3, 4
9) Jaka jest różnica pomiędzy klasą a obiektem?
Klasa jest to definicja obiektu, opisuje stany oraz zachowania obiektu. Obiekt jest to instancja klasy, jego zachowanie zostały zdefiniowane w klasie. Jeżeli tworzymy nowy obiekt, czyli instancje klasy, to tworzymy konkretny egzemplarz, którego zachowania, czyli metody i stany, czyli właściwości i pola zostały zdefiniowane w klasie. Czyli klasa jest to taki szablon, na podstawie którego możemy tworzyć nowe obiekty. Gdy już mamy klasę, to na jej podstawie możemy tworzyć wiele obiektów.
public class Student
{
public string Name { get; set; }
public void DisplayName()
{
Console.WriteLine(Name);
}
}
public class Program
{
static void Main(string[] args)
{
var student = new Student();
student.Name = "Jan";
student.DisplayName();
}
}
10) Jaka jest różnica pomiędzy deklaracją a inicjalizacją?
Sama deklaracja to tylko stworzenie miejsca w pamięci gdzie będzie przechowywana wartość danej zmiennej.
int a;
Natomiast inicjalizacja, to przypisanie jakiejś wartości do wcześniej już zadeklarowanej na przykład zmiennej.
a = 1;
Nic nie stoi na przeszkodzie, aby jednocześnie zrobić deklarację, wraz z inicjalizacją.
int b = 2;
ZAKOŃCZENIE
To tyle pytań w tym artykule. Kolejne przeanalizujemy już w kolejnym artykule. Jeżeli taki materiał Ci się spodobał, to koniecznie dołącz do mojej społeczności – darmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów.
To wszystko na dzisiaj, do zobaczenia w kolejnym artykule.
Poprzedni artykuł - Kursy Online a Programowanie. Czy Warto Kupować Kursy Programowania?.
Następny artykuł - 100 Pytań (i Odpowiedzi!) z Rozmów Kwalifikacyjnych Dla Młodszych Programistów C#/.NET (Część 2/10).