-2

スタック内の 1 つのクラスに次のタイプのメソッドがあります。

public void CalculateNewDate(DateTime newDate)
    {
      //datetimecalculations
    }

スタック内の別のクラスからメソッドを呼び出し、newDate パラメーターを渡して日時計算の結果を取得しようとしています。

プロジェクト内の新しいクラスでは、次のように呼び出しています。

Public void methodName(param,param)
{ foreach loop(param)
    {If item != null)
     DateTime newDate = item.Date.value;
      {
        item.item.date = CalculateNewDate(newDate);
      }
    }
}

メソッド スタブを生成するオプションと共に、"The name "CalculateNewDate" does not exist in the current context" エラー メッセージが表示されます。

名前空間の適切な使用法があります。他のクラスからこのメソッドを呼び出せない理由は何ですか?

申し訳ありませんが、私たちが公に投稿する内容に制限があるため、これ以上具体的に言うことはできません.

4

1 に答える 1

5

C# はオブジェクト指向言語であり、主要なビルディング ブロックはクラスです。
クラスのインスタンスを作成せずに、クラス内で定義されたメソッドを呼び出すことはできません。
(メソッドを静的に宣言しない限り、これは実際には問題ではありません)

このクラスがあるとします

public class AClassOfMine
{
    public DateTime CalculateNewDate(DateTime newDate)
    {
      //datetimecalculations
      return calculatedDate;
    }
}

そのメソッドを使用する場合は、そのクラスのインスタンスが必要です

public void methodName(param,param)
{ 
    foreach loop(param)
    {
        If (item != null)
        {
            DateTime newDate = item.Date.value;
            AClassOfMine anInstance = new AClassOfMine();
            item.item.date = anInstance.CalculateNewDate(newDate);
        }
    }
}

もちろん、メソッドCalculateNewDateは新しい日付を返すはずなので、それに応じてメソッドのシグネチャを変更する必要があります。(日付を返す)

于 2013-04-03T12:56:59.043 に答える