que tiene este C# DLL:F #/.NET instancia nula rareza
namespace TestCSProject
{
public class TestClass
{
public static TestClass Instance = null;
public int Add(int a, int b)
{
if (this == null)
Console.WriteLine("this is null");
return a + b;
}
}
}
Y esto # app F, que hace referencia a la DLL:
open TestCSProject
printfn "%d" (TestClass.Instance.Add(10,20))
Nadie inicia la variable estática Instance
. ¿Adivina cuál es el resultado de la aplicación F #?
this is null 30 Press any key to continue . . .
Después de algunas pruebas descubrí que a menos que utilice this
(por ejemplo, para acceder a un campo de instancia), no voy a entrar NullReferenceExpcetion.
¿Es eso un comportamiento previsto o una brecha en la compilación F #/CLR?
+1: oh wow, eso es algo que no he visto antes :) – Juliet