2017-11-27 17 views
-2

このようなクラスで関数を定義しました。 このクラスでは、すでに計算された値のリストの中に値が見つからない場合は、その値がルックアップまたは計算されます。クラスのオブジェクト参照エラーが発生しました

新たに計算された場合、結果はリストに格納され、後続の呼び出しで検索できるようになります。

問題は、私は、コンパイラが示唆理解していないコンパイラは、私はそれを行う方法が好きではないということで、私に

An object reference is required for the non-static field, method or property App.GetGoodFontSize(string, Size). 

を伝えます。どのオブジェクト参照が意味するのですか?

ありがとうございます。

public class App : Application 
{ 
    private List<udt> _list = new List<udt>(); 

    private class udt 
    { 
     public int iLen { get; set; } 
     public Size nSize { get; set; } 
     public double FontSize { get; set; } 
    } 

    public double GetGoodFontSize(string uText, Xamarin.Forms.Size uTextRect) 
    { 
     for (int i = 0; i < _list.Count; i++) 
     { 
      if ((_list[i].iLen == uText.Length) && (_list[i].nSize == uTextRect)) 
      { 
       return _list[i].FontSize; 
      } 
     } 

     int iBest = 100; 

     for (int i = 100; i > 6; i--) 
     { 
      Size nSize = GetTextSize(uText, i); 

      if (nSize.Width <= uTextRect.Width) 
      { 
       if (nSize.Height <= uTextRect.Height) 
       { 
        iBest = i; 
        break; 
       } 
      } 
     } 

     udt n = new udt(); 
     n.iLen = uText.Length; 
     n.nSize = uTextRect; 
     n.FontSize = iBest; 
     _list.Add(n); 

     return iBest; 
    } 
+2

ほとんどの場合、それはこのラインです。それは何で、どこですか? – CodingYoshi

答えて

2
は、このようにコードを変更し

: `GetTextSize`:

public static double GetGoodFontSize(string uText, Xamarin.Forms.Size uTextRect) 

private static List<udt> _list = new List<udt>(); 
+1

これらのメンバーを静的にすることはどのように役立ちますか? '_list'メンバは初期化されるので、メンバ変数としてはうまくいくはずです。 –

+0

私は考えていない、それはちょうど働いた、と私は幸せだったので、私はそれを受け入れた。 – tmighty

関連する問題