で保護されたメンバーにアクセスするには?どのように私は2クラスが継承したクラス
答えて
クラスの外部から保護されたメソッドにアクセスしようとしているためです。パブリックメソッドのみが使用できます。あなただけの継承されたクラスではなく、外側のコードから、保護されたプロパティ/可変/メソッドにアクセスすることができます。
public class Full: Access.Job
{
public void mVoid()
{
Console.WriteLine(this.JobName);
}
protected void mProtVoid()
{
Console.WriteLine(this.JobName);
}
private void mPrivateVoid()
{
Console.WriteLine("Hey");
}
}
Full myFull = new Full();
myFull.mVoid(); //will work
myFull.mProtVoid(); //Will not work
myFull.mPrivateVoid(); //Will not work
あなたが保護されたプロパティを取得する必要がある場合は、2つの方法(3実際には、そこにありますしかし、リフレクション)は汚い方法であり、避けるべきである。
:1.それはpublicに設定されている場合、それは
公共、それはSTIL継承され、あなたが直接それにアクセスできることを確認します
Full nFull = new Full();
Console.Write(nFull.JobName);
2.「ラッパー」/「ファサード」
を作るだけで隠されたプロパティにアクセスし、必要な形式でそれを返すよう、新しいプロパティやメソッドを作成します。
public class Full: Access.Job
{
public string WrappedJobName { get { return this.JobName; } }
public string WrappedJobName => this.JobName; //C# 6.0 syntax
}
Full mFull = new Full();
Console.WriteLine(mFull.WrappedJobName);
その罰金が保護されているのは、そのクラスから継承する作業だけです。ここで私が作成するフルmyFull =新しいフル(); myFull.JobName --->なぜ動作しないのですか –
@MdDastageerJob Tatranskymedvedはなぜそれがうまくいかないのか、少し読んで –
あなたは新しいインスタンスを作成しているから - あなたはオブジェクトの隣に座っています。メソッドとプロパティ。保護された/私的な方法にアクセスしようとすると、あなたは許可されません。彼らは保護されている/プライベートなので。言語の定義。 http://stackoverflow.com/questions/614818/what-is-the-difference-between-public-private-protected-and-nothing – Tatranskymedved
- 1. は、どのように私は2つのクラスを持って継承されたクラス
- 2. は2クラスから継承
- 3. 継承したクラスを継承する
- 4. python:どのように動的継承クラスから継承するには?
- 5. VB.netは2クラスを継承します
- 6. 継承によるSFINAEクラス
- 7. 継承したクラスのメソッドが基底クラスに渡された
- 8. クラス継承とインターフェイス継承
- 9. 継承されたクラスはネストされたクラスを継承しますか?
- 10. クラス継承が期待どおりに継承されない
- 11. はOPPS - クラス継承
- 12. 継承コンストラクタは、私がこのように定義されたクラスがあり、クラスの初期化
- 13. 私のクラスはどのようにインターフェイスとQObjectを継承できますか?
- 14. は、私は2つのクラスを持って、基本クラスの前に継承されたクラス
- 15. Setクラスの継承const_setクラスのクラスdelcaration OR設定クラスの継承後
- 16. クラス継承java
- 17. es6クラス継承
- 18. クラス継承PHP
- 19. C++クラス継承
- 20. VB.NetComクラス継承
- 21. Javascriptクラス継承
- 22. クラス継承
- 23. UML - クラス継承、あなたは何を継承しますか?
- 24. MultiLevel継承、クラスCはクラスAを継承できますか?
- 25. 継承クラスと汎用クラス
- 26. Javaのクラスと継承 - どうしたのですか?
- 27. C#の継承/クラス
- 28. C++クラスの継承
- 29. HTMLクラスの継承
- 30. Genieクラスの継承
あなたはFUL –
あなたがいない、クラスの外で、唯一の全クラスでこのプロパティにアクセスすることができますように完全なリファレンスを通して、あなたの全クラスでのJobNameにアクセスすることはできませんが。 "保護された文字列Job {get {return this.JobName;}}"をFullクラスに追加すると、Fullクラス以外でも使用できます。 – Julo
いいえ私はAcces JobNameに応募できませんIdしかし私は –