(続き)
そこでさらに次のように改良したところ、無事警告は表示されなくなりました。

class MyStaticClass3
{
  static double HighCostMethod() { ... }

  public static double X = Initialiser.Instance.X;
  public static double Y = Initialiser.Instance.Y;

  class Initialiser
  {
    public static Initialiser Instance = new Initialiser();

    public double X, Y;
    Initialiser()
    {
      var v = HighCostMethod();
      X = Math.Sign(v);
      Y = Math.Abs(v);
    }
  }
}

ただ、クラス初期化時のパフォーマンス上の問題を解消するために
さらに別のクラスを定義するのは本末転倒な気もします。

私のアプローチは正しいのでしょうか。
それとも素直に CA1810 の警告表示を抑制すべきでしょうか。
もしくは、別のもっとスマートな解決策があるのでしょうか。
アドバイス等をいただけると嬉しく思います。よろしくお願いいたします。