Wpis z mikrobloga

A i tak obaj mają HIV, czyli GC. Do pewnego czasu nie zauważasz jego obecności, a potem proces nagle umiera.
  • Odpowiedz
@qbek135: Oczywiście, że tak. Jedno i drugie jest bardzo przydatne przy optymalizacji. Dodatkowo wskaźniki ułatwiają interop. No i więcej możliwości to zazwyczaj dobra rzecz. Zresztą nie chodzi przecież tylko o zmienne prymitywne, typy referencyjne też można przekazywać przez referencję.
  • Odpowiedz
@Deaxerius: Typy referencyjne są z definicji przekazywane przez referencję w obu tych językach. Przekazywanie typów prostych przez referencję w C# to jest rak przeokrutny. Niestety w projekcie, który utrzymuję byli tacy magicy co z tego korzystali i teraz analiza takiego kodu, żeby coś zmienić to jest droga przez mękę. Co do interopu się nie wypowiem bo nic na ten temat nie wiem, ale jeśli musisz pracować na gołych wskaźnikach dla
  • Odpowiedz
@qbek135: Typy referencyjne nie są przekazywane przez referencję, tylko wartość referencji, a to spora różnica. W C# możesz dodatkowo przekazać je właśnie przez referencję, używając ref, co pozwala na jej zmianę, tego w Javie się zrobić nie da. Przy dużych structach przekazywanie przez referencję pozwala na całkiem sporą optymalizację, zwłaszcza odkąd wprowadzili in.

A możliwość pracy na gołych wskaźnikach to świetna sprawa, chociażby przy manipulacji obrazów albo SIMD.
  • Odpowiedz