C#においては、等価演算子・不等価演算子がオーバーロードされていない限り、両辺がstringでないとコンパイルエラーとなります(タイプセーフ)。 一方、Equalsメソッドは引数にObject型をとるオーバーロードも用意されているため、stringと異なる型の比較を行おうとしてもコンパイルエラーにはなりません。

等価演算子・不等価演算子・Equalsメソッドでの文字列と他の型との比較
using System;

class Sample {
  static void Main()
  {
    var s = "16";
    var i = 16;

    // 等価演算子では、stringとintの比較はコンパイルエラーとなる
    Console.WriteLine(s == i); // error CS0019: 演算子 '==' を 'string' と 'int' 型のオペランドに適用することはできません。

    // Equalsメソッドでは、stringとintの比較はコンパイルエラーにはならない
    // また実行時にも例外はスローされない
    // 異なる型同士の比較となるので、結果はFalseとなる
    Console.WriteLine(String.Equals(s, i)); // False
  }
}

等価演算子とEqualsメソッドではパフォーマンスに若干の違いはありますが、どちらを使うのが妥当かは状況により異なるので、両者の違いを十分に考慮して選択する必要があります。