2012-04-04 14 views
0

main内で呼び出され、同じクラスに含まれるメソッドに問題があります。このメソッドは文字列値を出力していますが、私の問題は文字列メッセージ内の配列への参照をインクルードしようとしています。私は、インクリメント、デクリメント、呼び出し、メッセージにC#で文字列内の配列への参照などの変数を含める方法

のみ割り当てを取得していますし、新しいオブジェクト 式はカンマと全体に関してで声明」無効な式とともに

として使用することができます束、次のすべての行に関しては期待以下のメソッド内のすべての

searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" + " for customer " + namesarr[i], balancesarr[i]"; 

public static string searchAccounts(ref int AccountNumber, int[] accountsarr, double[] balancesarr, string[] namesarr) 
{ 
    bool isValidAccount = false; 
    int i = 0; 

    while (i < accountsarr.Length && AccountNumber != accountsarr[i]) 
    { 
     ++i; 
    } 

    if (i != accountsarr.Length) 
    { 
     isValidAccount = true; 
    } 

    string searchResult; 

    if (isValidAccount) 
    { 
     searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" + " for customer " + namesarr[i], balancesarr[i]"; 
    } 
    else 
     searchResult = "You entered an invalid account"; 

    return searchResult; 
} 

文字列内の配列位置への参照を持つメソッドから文字列を返すにはどうすればよいですか?

+2

'String.Format'を参照してください。 –

+1

これは、+ namesarr [i]、balancesarr [i] "での単純な構文エラーです。; –

答えて

2

あなたは、単純に次の操作を実行できます。

searchResult = "Account #" + accountsarr[i] + " has a balance of "+String.Format("{0:c}",balancesarr[i]) + " for customer " + namesarr[i]; 
4

あなたはこのようなstring.Formatを使用する必要があります。

searchResult = string 
     .Format("Account # {0} has a balance of {1:c} for customer {2}", 
     accountsarr[i], balancesarr[i], namesarr[i]); 

あなたが得るエラーが構文上で、あなたの代わりに+のカンマを持っていますと余分なもの"

ちょうどあなたが知っているあなたのコードがコンパイルされない理由

searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" 
    + " for customer " + namesarr[i], balancesarr[i]"; << this is an extra " 
            //^ you cannot put a comma here 
+0

小さなタイプ - 値はプレースホルダの位置から外れています。 {0}はbalersarr [i]などではなく、namesarr [i]でなければなりません。 – Will

+0

@それで更新しました。 S – gideon

+0

2番目の部分は意味をなさない - それは残高をフォーマットするのではなく、生の値を名前の後に連結します。あなたの最初の推薦ははるかに明確です。 – Will

関連する問題