0

テーブルのカウントを取得するメソッドを c# で記述し、そのカウントを設定プロパティに保存します。

public static bool CompareCount(int? currentCount)
{

    Properties.Settings.Default.Count = (int)currentCount;
    Properties.Settings.Default.Save();
    if (currentCount < Properties.Settings.Default.Count)
    {
        return false;
    }
    else
    {
        return true;
    }
}   

最初に返されたカウントが20の場合。設定に保存しますが、それを以前のカウントと比較しないでください。2回目は、現在のカウントと以前に保存されたカウントを比較したいと思います。上記のメソッドは、現在のカウントを初めて割り当てる必要があります。しかし、2回目は比較できませんでした。

前もって感謝します。

4

3 に答える 3

2

int?まず、入ってくる をintif パラメータがにキャストするとどうなるかを考えてみてくださいnull。後で何もしない場合、null 許容パラメーターを使用しても意味がありません。パラメータのタイプを次のように変更するか、次のようにintする必要があります。

Properties.Settings.Default.Count = currentCount ?? 0;

次に、条件が常にであるため、メソッドは常に を返します。その 2 行上に設定していることを覚えていますか? では、どのように よりも大きくなる必要がありますか?trueiffalseProperties.Settings.Default.CountcurrentCountcurrentCount

「1回目」と「2回目」の判断方法を自分で定義する必要があります。メソッドが初めて実行されたかどうかを調べる条件は何ですか? 以下のコードではProperties.Settings.Default.Count、メソッドが初めて実行されるかどうかを判断するのに役立つデフォルト値があると仮定します。

次に、あなたの言うことから、コードは次のようになります。

public static bool CompareCount(int? currentCount)
{
    int countValue = currentCount ?? 0;

    if (Properties.Settings.Default.Count == <some default value>)
    {    
        Properties.Settings.Default.Count = (int)currentCount;
        Properties.Settings.Default.Save();
    }
    else
    {
        return currentCount >= Properties.Settings.Default.Count;
    }
}   
于 2013-04-26T06:49:44.547 に答える
1

現在の見つかったカウントに、それがデフォルト値(ゼロ、または見つからない、または独自に設定した場合は見つからなかったとしましょう-1)と等しいかどうかを確認するように依頼します。そのため、見つからない場合は比較しません。

例えば:

public static bool CompareCount(int? currentCount)
{
    int foundCount = ReadFoundCountFromProperties;
    if (foundCount != 0)
    {
      Properties.Settings.Default.Count = (int)currentCount;
      Properties.Settings.Default.Save();
      if (currentCount < foundCount)
       return false;

      return true;
}   
于 2013-04-26T06:40:49.367 に答える
1

それを実装する上での問題は何ですか?すべてのブロックが手元にあります。それらを適切に並べ替えるだけです。

設定で定義された「int Count」がデフォルトで「0」であることが問題である場合は、デフォルトを -1 に変更して、明らかに以前に書き込まれた Count にならないようにすることができます。int?または、デフォルトの null を持つように変更できます。

于 2013-04-26T06:42:55.010 に答える