-1

私の本の例に問題があります。私が読んだことから、非静的メソッドはクラスのオブジェクトのインスタンスなしでは使用できません。それで、これは大丈夫ですか?

public partial class TempAgencyForm : Form
{
     public TempAgencyForm()
     {
        InitializeComponent();
     }

     private void  btnCalculate_Click(object sender, EventArgs e)
     {
        ...
        setVisibility(false);
     }

     private void  setVisibility(bool visibilityValue)
     {
         ...
     }
 }
4

4 に答える 4

4

はい、大丈夫です。1 つの非静的メソッドは、別の非静的メソッドを呼び出すことができます。

呼び出し:

setVisibility(false);

次のように書くこともできます。

this.setVisibility(false);

ただし、this修飾子は冗長です。

ただし、メンバー内からインスタンス修飾なしで非静的メソッドを呼び出そうとするとstatic、問題が発生しました (コンパイル時エラー)。

于 2013-11-11T13:23:33.667 に答える
0

ここでは静的か非静的かは関係ありません。同じオブジェクト内で宣言されたメンバー関数を呼び出しています。短い答えは「大丈夫です」

TempAgencyFormメンバーの呼び方は、あなたが言及しているものかもしれません

この場合(定義したように)インスタンス化が必要です

TempAgencyForm taf = new TempAgencyForm()
taf.setVisibility(false);

ただし、クラス定義自体が静的である場合、つまり

public static partial class TempAgencyForm 

それから、

TempAgencyForm.setVisibility(false); 

アプリケーションの起動時にオブジェクトがすでにスタックにロードされているため、(オブジェクトをインスタンス化せずに)十分です

于 2013-11-11T13:27:02.877 に答える