1

Java から C# を初めて使用するので、あいまいさに関するエラーが発生します。何を修正する必要があるか教えてください。

public class JessiahP3 
{
    boolean  isPlaying =  false;
    int strings  = 1;
    boolean isTuned = false;
    public String instrumentName;

    //is tuned
    public void isTuned() 
    {
        isTuned = true;
        System.out.println("Currently tuning " + getInstrumentName());
    }

    //not tuned
    public void isNotTuned() 
    {
        isTuned = false;
        System.out.println(getInstrumentName() + " is not tuned");
    }
}
4

4 に答える 4

6

isTuned という名前の変数と関数があります。

于 2011-11-28T01:32:48.410 に答える
4

より慣用的な C# として、次のことをお勧めします。

  1. パブリック フィールドの代わりにプロパティを使用します。
  2. 適切な場合は、プロパティの自動 getter/setter を優先します。
  3. プロパティ名は大文字で始める必要があります
  4. 可視性を明示的に指定する

--

public class JessiahP3
{
    private int strings  = 1;
    public string InstrumentName { get; set; }
    public boolean IsPlaying { get; set; }
    public boolean IsTuned { get; set; }
}
于 2011-11-28T01:37:41.383 に答える
1

同じシグネチャを持つフィールドとメソッドがあります。を参照してくださいisTuned

于 2011-11-28T01:34:49.513 に答える
1

ここに 3 つの明らかな誤りがあります。

  1. isTuned同じ型内で変数名とメソッド名の両方として使用しています。
  2. System.out.printlnである必要がありますConsole.WriteLine
  3. booleanbool(またはBoolean)

getInstrumentName()そうは言っても、C# では、これは多くの場合、(プロパティへの変更と共にInstrumentName) 単一のプロパティとして行われます。

bool isTuned = false;

bool IsTuned
{
    get { return isTuned; }
    set 
    { 
         this.isTuned = value; 
         Console.WriteLine( isTuned ? "Currently tuning " + this.InstrumentName : this.InstrumentName + " is not tuned" );
    } 
}
于 2011-11-28T01:38:24.207 に答える