Co się kryje w klasach/metodach kodu zarządzanego...

0

Witam dziś na programowaniu po odpowiedzi na pytanie nauczyciela dlaczego wybrałem c# a nie c++ spytał o to czy wiem jak to naprawdę działa...

Poszukałem trochę w necie ale nie znalazłem ostatecznej odpowiedzi.
Mianowicie co kryje się pod metodami w c#?
Jak to jest, że WriteLine wywala napis?

Coś w tej metodzie musi się kryć jakiś kod co wypisuje ten tekst. A czym jest ten kod? Są to jakieś specjalne instrukcje procesora/systemu? Czy może klasa napisana w innym języku?

Najlepsze co mi przyszło do głowy to że m$ stowrzył c# tak:

static class System
{
static public void WriteLine(argumenty)
{
 std::cout << argumenty << std::endl; // No ale wtedy pod funkcjami c++ też musi się coś kryć też inny język? C? A C napisany na Assemblerze a ten na czym? 
}
} 

I tak samo z innymi metodami. Bo w końcu coś w tej metodzie dziać się musi. Czymś ten język zarządzany musieli stworzyć;p
Może pytanie banalne ale mam nadzieje że nie będziecie się nabijać z Świeżaka i pomożecie coś;p

0

Najczęściej wszystko ma pokrycie w cstdlib, który z kolei jest nakładką na wywołania systemowe.

0

Akurat zdecydowana większość .NET Frameworka napisana jest w językach zarządzanych (C#, C++/CLI). Bezpośrednio nie korzystają one w ogóle z biblioteki standardowej C/C++. Możliwe, że pośrednio też nie, bo w gruncie rzeczy jej implementacja opakowuje biblioteki systemu, takie jak kernel32.dll (ta z kolei z ntdll.dll już komunikuje się bezpośrednio z kernelem).

Przykładowo System.Console działa poprzez pobranie uchwytu standardowego wyjścia przez GetStdHandle, za pisanie do niej odpowiedzialne jest WriteFile. Nie drążyłem tematu, ale standardowa biblioteka C/C++ robi to pewnie w dokładnie ten sam sposób.

0

generalnie .Net Framework pod Windows to opakowanie na WinAPI.

1 użytkowników online, w tym zalogowanych: 0, gości: 1