Common Intermediate Language to zorientowany obiektowo język asemblera używany przez platformy .NET Framework, .NET Core i Mono. Języki .NET kompilują się do CIL, który jest składany w kod obiektowy, który ma format w stylu kodu bajtowego.
Uczę się teraz MSIL, aby nauczyć się debugować moje aplikacje C # .NET. Zawsze zastanawiałem się: jaki jest cel stosu? Wystarczy umieścić moje pytanie w kontekście: dlaczego istnieje transfer z pamięci na stos lub „ładowanie”? Z drugiej strony, dlaczego istnieje przeniesienie ze stosu do pamięci lub „przechowywanie”? Dlaczego po prostu …
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i prawdopodobnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …
Jako rodzaj kontynuacji pytania o nazwie Różnice między kodem bajtowym MSIL i kodem bajtowym Javy? , jakie są (główne) różnice lub podobieństwa między sposobem działania wirtualnej maszyny języka Java a sposobem działania.NET Framework Common Language Runtime (CLR) działa? Również jest .NET Framework CLR „maszyna wirtualna” czy nie ma atrybutów maszyny …
Chcę zmienić sposób wykonywania metody C #, gdy jest wywoływana, aby móc napisać coś takiego: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n == 0) return false; return true; } W czasie wykonywania …
Poniższy kod powoduje użycie nieprzypisanej zmiennej lokalnej „numberOfGroups” : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } Jednak ten kod działa dobrze (chociaż ReSharper twierdzi, że = 10jest zbędny): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; …
Wczoraj znalazłem artykuł Christopha Nahra zatytułowany ".NET Struct Performance", w którym porównano kilka języków (C ++, C #, Java, JavaScript) dla metody, która dodaje dwie struktury punktowe ( doublekrotki). Jak się okazało, wykonanie wersji C ++ zajmuje około 1000 ms (iteracje 1e9), podczas gdy C # nie może zejść poniżej …
Jakie jest wyjaśnienie wyniku następującej operacji? k += c += k += c; Próbowałem zrozumieć wynik wyjściowy z następującego kodu: int k = 10; int c = 30; k += c += k += c; //k=80 instead of 110 //c=70 i obecnie nie rozumiem, dlaczego wynik „k” to 80. Dlaczego …
W wielu aukcjach MSIL zauważyłem, co następuje: System.Nullable`1<!0> etc ... lub class !0 etc ... Jakie jest znaczenie !0w tych okolicznościach?
Przechodzę przez MSIL i zauważam, że w MSIL jest wiele instrukcji nop . Artykuł MSDN mówi, że nie podejmują żadnych działań i są używane do wypełniania miejsca, jeśli kod operacji jest załatany. Są używane znacznie częściej w kompilacjach do debugowania niż w kompilacjach wydań. Wiem, że tego rodzaju instrukcje są …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.