1

C#の学習を始めたばかりです。これまでにおそらく 50 のチュートリアルを読み、十分に理解していると思いました。どうやら私が間違っていたようです。msdn.microsoft.com の C# Programmer's Reference をよく読んでいますが、チュートリアルのソースとしては最適ではないようです。

私は文字通り、最も単純なタスクを達成しようとしています。変数、操作、および入力を理解しようとしています。私は Web プログラミング出身で、PHP スクリプトをデスクトップ アプリケーションに変えたいと思っているので、C# の基礎を学ぼうとしていますが、代わりに別の言語を学ぶ必要があると思います。

基本的に、テキストボックスとボタンがあります。ボタンがクリックされたときに、テキストボックス内のテキストをチェックして、特定の文字列と一致するかどうかを確認したいと考えています。次に、メッセージを含むメッセージ ボックスを表示します。

private void btnClick_Click(object sender, EventArgs e) {
    if(txtCL.Text == "one") {
        bool myTest = true;
    } else {
        bool myTest = false;
    }
    if(myTest == true) {
        MessageBox.Show("You entered the correct password.", "Important Message");
    } else {
        MessageBox.Show("The password you entered is not correct.", "Incorrect Input");
    }
}

より速く学べるように、誰かがより良いチュートリアルを教えてくれたら本当にありがたいです. Microsoft のドキュメントは、実際には何も教えてくれませんでした。

ばかげた質問で申し訳ありませんが、お気軽に私をバカと呼んでください。

4

4 に答える 4

8

これはスコーピングの問題でmyTestあり、存在しません。少なくともそこにはありません。各初期条件のスコープ内で毎回作成しています。もしあなたがそうするなら:

bool myTest = false;
if(txtCL.Text == "one") {
   myTest = true;
}
if(myTest == true) {
    MessageBox.Show("You entered the correct password.", "Important Message");
} else {
    MessageBox.Show("The password you entered is not correct.", "Incorrect Input");
}

次に、ブール値を指定し、それを false に設定します (これはbool、実際には a のデフォルト値です)。次に、条件が満たされているかどうかを確認し、それに応じて再割り当てします。その後、メッセージ ボックスを表示するために評価できます。

このコードをさらに短くすることもできますが、これは読者の演習です。(:

于 2013-03-27T19:31:30.897 に答える
3

bool 変数は実際には必要ありません。より簡単にすることができます。

private void btnClick_Click(object sender, EventArgs e)
{
    if(txtCL.Text == "one")
    {
        MessageBox.Show("You entered the correct password.", "Important Message");
    }
    else
    {
        MessageBox.Show("The password you entered is not correct.", "Incorrect Input");
    }
}

チュートリアルが必要な場合は、「C# 初心者向けチュートリアル」をグーグルで検索するか、ビデオ チュートリアルが必要な場合は、こちらをご覧ください。

于 2013-03-27T19:31:16.883 に答える
0
    if(...) {
        bool myTest = true;
    } else {
        bool myTest = false;
    }

    // At this point in time 'myTest' is not a known variable. 
    // It's out of scope already s your next line will cause a compile error.
    if(myTest == true) { 
        ...
    }

したがって、スコープ内で変数を宣言する必要があります

    bool myTest = false;

    if(...) {
        myTest = true;
    } 

    // Now you can use the myTest variable
    if(myTest) { 
        ...
    }

すでに指摘したように、これはまったく同じように機能するため、変数はまったく必要ありません

private void btnClick_Click(object sender, EventArgs e) {
    if(txtCL.Text == "one") {
        MessageBox.Show("You entered the correct password.", "Important Message");
    } else {
        MessageBox.Show("The password you entered is not correct.", "Incorrect Input");
    }
}

好きなだけ本を読むことができますが、既に PHP のプログラミング経験があるので、C# の実践的な経験を積むことをお勧めします。並行して、本はもちろん害はありません。しかし、あなたが従っているアプローチ(オンラインで読んだり、コーディングしたりすること)は、最終的には報われると思います。少し時間をください。練習。多くの。

于 2013-03-27T19:37:39.110 に答える
-2

ボタンをクリックしても何も起こらないと仮定しています。これは本当ですか?そうである場合は、行にブレークポイントを置きます: if(txtCL.Text == "one") 、アプリを実行してクリックします。ブレークポイントに到達しない場合、「クリック」イベントとコードの間にリンクはありません。ボタンのプロパティを調べると、リンクを作成する方法が表示されます。

それに固執してください、私はPHPの男で、今はC#の男です。それはできます。

于 2013-03-27T19:30:28.327 に答える