2017-08-04 15 views
-1

たとえば、ChName1、ChName2、および2 int値の2つの文字列値を宣言しました。例:設定のDelay1、Delay2。クラス内のクラスを使用して配列を取得する#

私はクラスで配列を実装したいので、人生はより簡単になります。誰かが、その後、私のメインのコードで私はこのコードは私のコードでエラーが発生している

このような
GetDefaultValues Vlues = new GetDefaultValues(); 
Vlues.Name[0] = "SomeName"; 
string SomeString = Vlues.Name[1]; 

Vlues.Value[0] = 125; 
int SomeInt = Vlues.Value[1]; 

を行うことが必要に応じて説明

public class GetDefaultValues 
    { 
     public string Name[int i] 
     { 
      get 
      { 
       switch (i) 
       { 
        case 0: 
         return Name.Properties.Settings.Default.ChName1; 
        case 1: 
         return Name.Properties.Settings.Default.ChName2; 
        default: 
         return "Not Implemented"; 
       } 
      } 

      set 
      { 
       switch (i) 
       { 
        case 0: 
         { 
          Name.Properties.Settings.Default.ChName1 = value; 
          break; 
         } 
        case 1: 
         { 
          Name.Properties.Settings.Default.ChName2 = value; 
          break; 
         } 
       } 

       Name.Properties.Settings.Default.Save(); 
      } 
     } 

     public int Value[int i] 
     { 
      get 
      { 
       switch (i) 
       { 
        case 0: 
         return Name.Properties.Settings.Default.Delay1; 
        case 1: 
         return Name.Properties.Settings.Default.Delay2; 
        default: 
         return 0; 
       } 
      } 

      set 
      { 
       switch (i) 
       { 
        case 0: 
         { 
          Name.Properties.Settings.Default.Delay1 = value; 
          break; 
         } 
        case 1: 
         { 
          Name.Properties.Settings.Default.Delay2 = value; 
          break; 
         } 
       } 

       Name.Properties.Settings.Default.Save(); 
      } 
     } 
    } 

で自分のコードを修正することができます。

エラー2不正な配列宣言子:管理された配列を宣言するために、ランク 指定子が変数の識別子に先行します。私はなぜ知っていることができれば、固定サイズ バッファフィールドを宣言するには、フィールドタイプ

前に、固定キーワードを使用して幸せになります? 助けてください!

+1

*このコードは自分のコードにエラーを生成しています*どのエラー? 実際には、このプロパティの代わりにメソッドを使用する必要があります。 –

+0

エラー不正配列宣言子:管理対象配列を宣言するために、ランク指定子が変数の識別子に先行します。固定サイズのバッファフィールドを宣言するには、フィールドタイプの前にfixedキーワードを使用します。 –

+1

エラーに加えて、エラーが発生した場所も指定する必要があります。私はあなたが私たちに推測を残すべきではないので、問題がどの行にあるのか正確に伝えられたと確信しています。 – Chris

答えて

0

プロパティにはそのロジックが含まれていてはならないため、このプロパティを使用しないことをお勧めします。代わりにメソッドを使用する必要があります。

これは、たとえば、この名前をサンプルとして追加したものです。

public class GetDefaultValues 
{ 
    public bool SetName(int i, string value) 
    { 
     switch (i) 
     { 
      case 0: 
       { 
        Name.Properties.Settings.Default.ChName1 = value; 
        break; 
       } 
      case 1: 
       { 
        Name.Properties.Settings.Default.ChName2 = value; 
        break; 
       } 
      default: 
       return false; 
     } 

     Name.Properties.Settings.Default.Save(); 
     return true; 
    } 

    public string GetName(int i) 
    { 
     switch (i) 
     { 
      case 0: 
       return Name.Properties.Settings.Default.ChName1; 
      case 1: 
       return Name.Properties.Settings.Default.ChName2; 
      default: 
       return "Not Implemented"; 
     } 
    } 
} 

これは、それが働いていたかいない場合は、情報を持ってしたくない場合は、SetName方法void方法にすることができ、この

GetDefaultValues Vlues = new GetDefaultValues(); 
bool success = Vlues.SetName(0, "SomeName"); 
string SomeString = Vlues.Name(1); 

のように呼び出されます。

+0

返信ありがとうございます。これは私が現在実装している方法です。プロパティはいくつかの方法を使用できるかどうかを知りたいですか? –

+0

@joshinjoy私が知る限り、プロパティでそれを行う方法はありません。 1つがあれば、私はまだ多くのロジックをプロパティに入れないことをお勧めします。 –

関連する問題