.NET用にさまざまな言語で読み上げてプログラミングを始めて以来、プログラム内の「グローバル」は非常に悪いと言われています。その全体の考えは私にはまったく意味をなさないようです。過去10〜13年間プログラマー/ソフトウェア開発者であった私は、プログラマーとしてのあなたがグローバルオブジェクトまたは変数を使用せずにコーディングすることができない場合があるという事実を受け入れるようになりました。
グローバル変数またはオブジェクトがプログラムのバグにつながる可能性があることは事実ですが、それはプログラミング言語またはコンパイラ自体によるものではなく、プログラマ自身によるものであることを意味します。
グローバルウィンドウフォームに関する限り、フォームのインスタンスをパラメーターとして渡すことができない場合、イベント内でプログラムの他の部分から「SAME」ウィンドウフォームのプロパティをプログラムで変更できるとどのように期待しますか。 。ウィンドウフォームがグローバルでない場合、プログラムがそのプロパティを表示または変更する必要があるたびに、新しいフォームをローカルでインスタンス化する必要がありますが、新しいフォームは最初に開いたフォームと同じにはなりません。フォームがprivate、protected、またはpublicセクションのクラス内で宣言されている場合は、クラスをインスタンス化する必要があります。次に、フォーム自体をインスタンス化して、必要な場所に渡す必要があります。そうすることで、他のプログラミングの問題に遭遇すると確信しています。
なぜ彼らがCLOSEメソッドの本当の定義を変えるのかさえ私にはわかりません。クローズとは、破棄せずにクローズすることを意味します。
私はグローバルが悪いという考え全体を否定しようとはしていません。なぜ、どのように理解しようとしているだけです。
誰かが説明して、単一の「グローバル」ウィンドウフォームや変数さえも使わずに完全にプログラムする方法の例を教えてもらえますか?プログラムに2つのウィンドウ形式があるとしましょう。1つはメインフォームで、もう1つはTtimerとラベルがあります。メインフォームには、2番目のフォームを開くTbuttonおよびclickイベントがあります。2番目の形式のタイマーには、現在の日付と時刻をそのラベルテキストプロパティに毎秒設定するTickイベントがあります。TButtonをクリックすると、2番目のフォームが開き、現在の日付と時刻が1秒ごとに表示されます。次に、C#、Delphi XE、プリズム、C ++、VBで説明した上記のプログラムのコードを、グローバル変数なしで表示します。
ありがとう、