非常に基礎的なことですが。。。C#のスコープに関して質問があります。
いつも自分は(大規模な開発をしたことがないのもありますが)とりあえず全てのクラスの要素を例えば以下のようにすべてをpublicにする節があります。
//class public class Logic { //field public string Uri { get; set; } //constructor public Logic() { Uri = "https://sample"; } //method public void ConsoleLogic(Uri) { Console.Write(Uri); } }
もちろんクラスpublicにすれば当然外部からもどこでも参照できるようになると思います。
この時例えばこのLogicをLogic logic = new Logic();
のようにインスタンス化して、外部のクラスからこのLogicクラスのフィールドやメソッドにアクセスしたい場合、とりあえずクラスさえpublicにしていれば
private string Uri { get; set; }
やprivate void ConsoleLogic(Uri)
のようにしてもlogic.ConsoleLogic()
のようにアクセスできるようなものなのでしょうか?(フィールドの場合はstatic付けなきゃ直接アクセスできないかもですが。。。)
クラスの外部アクセスは分かるのですが、メソッドやフィールドなどのスコープがいまいち分かっていません。。。
またクラスをpublicにしていたらコンストラクタもpublicにしなければダメなのでしょうか?
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。