二元对象上的等于方法

Pet*_*one 2 .net c#

Microsoft的文档

public bool Binary.Equals(Binary other)
Run Code Online (Sandbox Code Playgroud)

没有说明这是否与一般的对象或与字符串的值相等来测试引用的相等性.

任何人都可以澄清吗?

John Skeet的回答激励我将其扩展到:

using System;
using System.Data.Linq;
public class Program
{
  static void Main(string[] args)
  {
    Binary a = new Binary(new byte[] { 1, 2, 3 });
    Binary b = new Binary(new byte[] { 1, 2, 3 });
    Console.WriteLine("a.Equals(b) >>> {0}", a.Equals(b));
    Console.WriteLine("a {0} == b {1} >>> {2}", a, b, a == b);
    b = new Binary(new byte[] { 1, 2, 3, 4 });
    Console.WriteLine("a {0} == b {1} >>> {2}",a,b, a == b);
    /* a < b is not supported */
  }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

好吧,一个简单的测试表明它价值平等:

using System;
using System.Data.Linq;

class Program {

    static void Main(string[] args)
    {
        Binary a = new Binary(new byte[] { 1, 2, 3 });
        Binary b = new Binary(new byte[] { 1, 2, 3 });

        Console.WriteLine(a.Equals(b)); // Prints True
    }
}
Run Code Online (Sandbox Code Playgroud)

他们已经不屑于实现的事实IEquatable<Binary>,并覆盖Equals(object)开始与建议值相等的语义太...但我同意文档应该明确这一点.