Как я могу определить, ссылаются ли две переменные ref
на одну и ту же переменную - даже если обе переменные содержат null
?
Пример:
public static void Main( string[] args )
{
object a = null;
object b = null;
Console.WriteLine( AreSame( ref a, ref b ) ); // Should print False
Console.WriteLine( AreSame( ref a, ref a ) ); // Should print True
}
static bool AreSame<T1, T2>( ref T1 a, ref T2 b )
{
// ?????
}
Вещи, которые я пробовал, которые не работают:
-
return object.ReferenceEquals( a, b );
(Возвращает true в обоих тестовых случаях) -
unsafe { return &a == &b; }
unsafe { return &a == &b; }
(Невозможно принять адрес управляемого объекта)