Cercavo l'attuazione .NET di atan2 in un riflettore e ho trovato la seguente riga:Come viene implementato Atan2 in .NET?
public static extern double Atan2(double y, double x);
Questo non è sorprendente dal momento che ha senso per la maggior parte delle funzioni aritmetiche per essere implementate in codice nativo. Tuttavia, non esisteva alcuna chiamata DllImport associata a questa o altre funzioni in System.Math.
La domanda principale riguarda il modo in cui la funzione è implementata nel codice nativo, ma vorrei anche sapere quale Dll nativo risiede. Inoltre, perché non esiste DllImport? È perché la compilazione lo spoglia?
+1 vedi anche: http://stackoverflow.com/questions/4162232/atan2-in-c-sharp-or-similar-lanaguge –
Non esiste DllImport perché il metodo utilizza l'attributo 'MethodImp (MethodImplOptions.InternalCall)]' (che viene utilizzato per il codice nativo chiamato d irectly dai metodi CLR). Questo è un attributo speciale solo per CLR. Vedi anche questa risposta di Hans Passant: http://stackoverflow.com/a/8870593/106159 –