2010-03-29 7 views
9

Gdzie mogę znaleźć specyfikację CLR? Na przykład chcę sprawdzić, jak zaimplementowano w pamięci obiekt "ThreadStart".Specyfikacja CLR .NET

Dzięki.

Odpowiedz

12

najbliżej jestem świadomy jest ECMA-335 który jest specyfikacja CLI. Należy jednak pamiętać, że model pamięci ECMA jest znacznie słabszy niż w przypadku .NET. (Gdzie .NET to implementacja CLI przez Microsoft).

Wątpię, czy CLI wymienia w szczególności ThreadStart - to tylko kolejny przedstawiciel. Co cię szczególnie interesuje?

+0

Chciałbym zobaczyć, jak zbudowany jest obiekt, taki jak delegat w pamięci (jego pola, metody itp.). – Thomas

+0

Cóż, możesz * możesz * spojrzeć na to z Reflectorem, ale będzie to zależało od implementacji - nie spodziewałbym się znaleźć tych informacji w specyfikacji. Należy również pamiętać, że delegaci mają dwoistą naturę - można je wyświetlać w trybie multiemisji lub można rozważyć, jakie będzie jedno "działanie". Można to zobaczyć we właściwościach Delegate.Method/Target i metodą MulticastDelegate.GetInvocationList. –

+0

Specyfikacja CLI dotyczy tylko języka C# lub implementacji CLR? Czy specyfikacja ECMA dla CLR różni się od ECMA-335? Powiedzmy, że muszę napisać implementację CLR dla innego systemu operacyjnego niż windows, a następnie jaką specyfikację ECMA powinienem zastosować? – RBT

5

Nie jestem pewien spec, ale jeśli chcesz, aby spojrzeć na szczegóły wykonania może chcesz używać Red-gate Reflector