J'ai cette C# DLL:F #/instance null .NET bizarrerie
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;
}
}
}
Et cette application F # qui fait référence à la DLL:
open TestCSProject
printfn "%d" (TestClass.Instance.Add(10,20))
Personne n'initie la variable statique Instance
. Devinez quelle est la sortie de l'application F #?
this is null 30 Press any key to continue . . .
Après quelques tests, je trouve que si je ne l'utilise this
(par exemple pour accéder à champ d'instance), je ne vais pas NullReferenceExpcetion.
Est-ce un comportement prévu ou une lacune dans F # compilation/CLR?
+1: oh wow, c'est quelque chose que je n'avais pas vu auparavant :) – Juliet