2016-05-31 12 views
-4

こんにちは私はあなたには、いくつかのテキストボックスにいくつかの情報を記入キーを生成するプログラムを持っています。余分な数字を追加しようとすると、インデックスと長さは文字列内の場所を参照する必要がありますか?

public virtual string GenerateKey(string BreedPub) 
     { 
       return GenerateKey() + BreedPub.Substring(0, 3); 
     } 

と私はそれがこれに矛盾すると思う:

を私は余分な1または0を追加してキーを生成今までそれはインデックスと長さが文字列内の場所を参照する必要があり、これはコードである私に指示すると
public override string GenerateKey(string BreedPub) 
     { 
      string key = null; 
      if (Pedigree == "1") 
      { 
       key = GenerateKey() + BreedPub.Substring(0, 3) + "1"; 
      } 
      else 
      { 
       key = GenerateKey() + BreedPub.Substring(0, 3) + "0"; 
      } 
      return key; 

が、今私は(0,4)に部分文字列を変更しようとしたか、これをやってきました:

public virtual string GenerateKey(string BreedPub) 
     { 
      if (Pedigree == "1") 
      { 
       return GenerateKey() + BreedPub.Substring(0, 3) + "1"; 
      } 
      else if (Pedigree == "0") 
      { 
       return GenerateKey() + BreedPub.Substring(0, 3) + "0"; 
      } 
      else 
      { 
       return GenerateKey() + BreedPub.Substring(0, 3); 
      } 
     } 

それはまだ私に同じエラーメッセージを与え、私が間違って何をやっているだろうか?あなたのBreedPub引数が短すぎるため

+0

私はGenerateKeyの呼び出しの間に失ったが、そのような単純なのです。このコードの最初の呼び出しでBreedPubの価値は何ですか? – Steve

+2

'BreedPub'に少なくとも3文字が含まれていることをどのように知っていますか? –

+0

エラーは、問題がある正確に何を言っている:BreedPub未満3文字の長さです。 –

答えて

0

BreedPub.Substring(0、3)は、おそらく例外をスローしています。範囲のチェックを追加して、パラメータの長さが3文字以上であることを確認する必要があります。

+0

に感謝します。これは恥ずかしいですが、私は、どこかで助けをとにかく感謝をdog.BreedPub = cmb_Breed.Textを追加するのを忘れ – SoChez

関連する問題