khr0404さんが提示しているクラスのthisと他のクラスで呼び出したthisの中身は別のものです。
thisは定義されたクラスのインスタンス自身を示します。インスタンスが何かわからなければ、詳細は自分でも調べて欲しいのですが、あるクラスという属性を持つ個体だと思ってください。
例えばPerson(人間)というクラスにはAさん、Bさんなどの個体がいると思いますが、thisはインスタンスがAさんだとすると、this.ageは、Aさん.ageに処理が置き替わり、インスタンスがBさんだとすると、Bさん.ageに置き替わり、それぞれのageの値にアクセスできるなどというような感じで使います。
つまり、thisはインスタンス自身を示し、それぞれAさん.age,Bさん.ageなどを別々の変数に定義する必要がないということです。分かりやすいメソッドを定義すると、Aさん.age=20;,Bさん.age=21;とした時に、
C#
1void AddAge(){
2 this.age++;
3}
というインスタンスメソッドをそれぞれ、Aさん.AddAge(),Bさん.AddAge()の実行後、前者はAさんがメソッドを呼び出したので、Aさん.ageは21,後者はBさんがメソッドを呼び出したので、Bさん.ageは22になります。thisはそのメソッドを呼び出したインスタンス自身を指していることをわかって頂けたでしょうか。
次に、違うクラスで、this._Flgはなぜエラーが出るかというと、thisはそのクラスのインスタンスなので、当然違うクラスに書かれたthisは違うクラスのインスタンスのみに適用されます。このインスタンスのクラスには、_Flgというパラメータが存在しないので、エラーがでます。また仮に_Flgが定義されていたとしても、他のクラスが指し示すパラメータとは異なるパラメータなので、this._Flgは自身の所属するクラスのインスタンスのパラメータアクセスになり、他のクラスのインスタンスのパラメータアクセスはできません。ではどうすれば良いかというと、直接そのインスタンスを取得して、プロパティ経由で._Flgの値を書き換えれば良いのです。
提示しているクラスを他のクラスで操作したければ、他のクラスの中で操作対象のクラスのオブジェクトのインスタンスをnewで作成して直接操作するか、他クラスに操作したいクラスの変数を引数に取る関数を作って、その中で、FLGプロパティ経由で_FLGを変更してあげれば大丈夫です。具体的には、
C#
1void ChangeFlag(TargetClass target){
2 target.Flg = !target.Flg;
3}
4
5あるいは、
6
7var target = new TargetClass();
8target.Flg = true (or false);
9
10など
などとします。なぜ._Flgを直接書き換えないかというと、privateを元のクラスで指定しているので、他クラスからこの変数にアクセスできないからです。代わりに提示していただいているコードには、Flgのgetterとsetterというアクセサと呼ばれる特殊なメソッドを定義していて、instance.Flg=(適当な値);とすると、instance._Flgが書き換わり、var 適当な変数名=instance.Flg;とすると、instance._Flgの値が取得できるように定義していて、これがpublicなので他のクラスから呼び出せるようにしています。
なぜこのように、メソッド経由で値を書き換えるという回りくどいことをするかというと、仮に._Flgの名前を変えたくなったり,._Flag自体を何らかのクラスのパラメータの一部に変更したくなった時に、._Flgを直接変更すると、._Flgを呼び出しているコードすべてに書き換えコストが生じてしまいます。アクセサを定義しておくと、今回の例では、._Flgの名前や構造が変わっても、Flgメソッドの中身をそこから整合性のあるデータに変えるだけで、.Flgを呼び出している場所は何も変更しなくてもコードが動くことを保証できるようになります。
大体ここに書かれている内容がわかるようになれば、オブジェクト指向に慣れると思うので頑張ってください。
補足
C#
1void ChangeFlag(TargetClass target){
2 target.Flg = !target.Flg;
3}
実際は、このメソッドは、他クラスに全く依存しない処理ので,元のクラスにインスタンスメソッドとして実装するか、staticメソッドにするのが良いです。(スタンダードなオブジェクト指向に則るなら前者がいいと思います)
C#
1Class TargetClass{
2 void ChangeFlag(){
3 this.Flg = !this.Flg;
4 }
5}
6他クラスのどこかで
7(ターゲットクラスのinstance).ChangeFlag()を呼ぶ
という感じです。