2017-06-07 12 views
0

私はpaymentIdという変数を宣言しました。窓口フォームを開くと、このpaymentIdは特定の値に初期化され、支払い(バター、パンなど)を追加してデータベースに保存してフォームを閉じることができます。フォームを閉じた後、別の支払い(ミルクなど)を追加できるようにフォームを開きますが、paymentIdは変更されず、同じpaymentIdがデータベースに保存されます。フォームを閉じたときに同じ値を繰り返す変数

public partial class PaymentAutoPayment : Form 
{ 
    int firstRun = 0; 
    double total = 0; 
    public static Random rnd = new Random(); 
    String cashierId = ""; 
    public static int randomString = rnd.Next(9999, 99999) 
    string paymentId = "RecId-" + randomString.ToString(); 

答えて

5

public static int randomStringは静的です。それは一度だけ正確に初期化されます。どんなに

public static int randomString = rnd.Next(9999, 99999); 

今何回

は、あなたが文字列に同じint型の値を変換し、それはまだ同じint型になるでしょう。

string paymentId = "RecId-" + randomString.ToString(); 

これを試してみてください:

string paymentId = "RecId-" + rnd.Next(9999, 99999).ToString(); 
+2

私はエラーを取得します。 「フィールドイニシャライザは非静的なフィールド、メソッド、またはプロパティを参照できません」 – Elias

+0

@Eliasもちろん、そうです。私の更新を試してください。 –

2
public static int randomString = rnd.Next(9999, 99999) 

これはstaticとして宣言してのみ、プログラム全体の実行時に一度実行され、決してが変化します。代わりに代わりに使用:

string paymentId = "RecId-" + rnd.Next(9999, 99999).ToString(); 
+0

宣言から静的を削除すると、エラーが発生します。 "フィールドイニシャライザは非静的フィールド、メソッド、またはプロパティを参照できません"投稿する前にそのフィールドを試しました。 – Elias

+0

@Eliasどこでも静的なものを削除するべきですか? – Adrian

関連する問題