Double型の場合、値が無限大でもSignメソッドは適切な符号を返しますが、非数(NaN, 0/0)の場合はArithmeticExceptionをスローします。

Math.Signメソッドで非数(NaN)を指定すると例外ArithmeticExceptionをスローする
using System;

class Sample {
  static void Main()
  {
    Console.WriteLine(Math.Sign(+1.0 / 0.0));
    Console.WriteLine(Math.Sign(-1.0 / 0.0));
    Console.WriteLine(Math.Sign( 0.0 / 0.0));
  }
}
実行結果
1
-1

ハンドルされていない例外: System.ArithmeticException: 関数は浮動小数点の非数値を受け入れません。
   場所 System.Math.Sign(Double value)
   場所 Sample.Main()