String.Compareメソッドは、CompareToメソッドと同じ動作をする静的メソッドです。 Equalsメソッドは、静的メソッドとしても用意されています。 戻り値はインスタンスメソッドの場合と同じです。

String.Compareの戻り値
文字列aとbの関係 String.Compare(a, b)の戻り値
並べ替えたときにaの方がbよりも前
(aはbよりも小さい)
0より小さい値 "ABC" < "ABD"
null < "ABC"
並べ替えたときにaとbは同じ位置
(aとbは等しい)
0 "ABC" = "ABC"
null = null
並べ替えたときにaの方がbよりも後
(aはbよりも大きい)
0より大きい値 "ABC" > "ABB"
"ABC" > null
String.Compare・Equalsメソッドで2つの文字列の大小関係・等価関係の比較を行う
using System;

class Sample {
  static void Main()
  {
    var s1 = "foo";
    var s2 = "bar";
    var s3 = "baz";

    Console.WriteLine("Compare({0}, {1}) : {2}", s1, s2, String.Compare(s1, s2));
    Console.WriteLine("Compare({0}, {1}) : {2}", s1, s3, String.Compare(s1, s3));
    Console.WriteLine("Compare({0}, {1}) : {2}", s2, s3, String.Compare(s2, s3));
    Console.WriteLine("Compare({0}, {1}) : {2}", s2, s2, String.Compare(s2, s2));

    Console.WriteLine("Equals({0}, {1}) : {2}", s1, s2, String.Equals(s1, s2));
    Console.WriteLine("Equals({0}, {1}) : {2}", s1, s3, String.Equals(s1, s3));
    Console.WriteLine("Equals({0}, {1}) : {2}", s2, s3, String.Equals(s2, s3));
    Console.WriteLine("Equals({0}, {1}) : {2}", s2, s2, String.Equals(s2, s2));
  }
}
実行結果
Compare(foo, bar) : 1
Compare(foo, baz) : 1
Compare(bar, baz) : -1
Compare(bar, bar) : 0
Equals(foo, bar) : False
Equals(foo, baz) : False
Equals(bar, baz) : False
Equals(bar, bar) : True

インスタンスメソッドでも静的メソッドでも結果は同じですが、想定される状況により使い分けることが出来ます。 例えば、静的メソッドのCompareとEqualsを使うと、仮に文字列変数にnull/Nothingが代入されていてもヌル参照を引き起こさずに済みます。 (nullとの比較や、null同士の比較を行っても例外エラーにはなりません)

Stringクラスのインスタンスメソッド・静的メソッドの比較
using System;

class Sample {
  static void Main()
  {
    string s1 = null;
    var s2 = "foo";

    Console.WriteLine(String.Compare(s1, s2)); // s1がnullでもエラーにはならない
    Console.WriteLine(s1.CompareTo(s2)); // s1がnullであるためNullReferenceExceptionがスローされる
  }
}
Stringクラスのインスタンスメソッド・静的メソッドの比較
Imports System

Class Sample
  Shared Sub Main()
    Dim s1 As String = Nothing
    Dim s2 As String = "foo"

    Console.WriteLine(String.Compare(s1, s2)) ' s1がNothingでもエラーにはならない
    Console.WriteLine(s1.CompareTo(s2)) ' s1がNothingであるためNullReferenceExceptionがスローされる
  End Sub
End Class