public
private
internal
protected
の影響範囲を図にしたのですが、図のような理解でよろしいでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
投稿2015/12/30 14:07
編集2015/12/30 14:27総合スコア13521
0
こんにちは。
C#のアクセス修飾子にファイル・スコープは無かったと思います。(C#はpartialを使って複数のファイルで1つのクラスを定義できますし。)
なので、図にスクリプト1.cs、スクリプト2.cs等の記載があることが混乱を生んでいるのではないでしょうか?
それから、アクセス修飾子がどこに付いているのか明記した方が良いと思います。
特に、protected、protected internalについてはどのクラスに付けているのか明記しないと混乱すると思います。
最後にクラス1, 2, 3のどれとも無関係なクラス(クラス4, 5)を両方のアセンブリに定義すれば、protected、protected internalのスコープを明確にできると思います。
【ついでに】
「スクリプト」って表現はコンパイルしないような言語で良く用いられます。コンパイルする言語ではあまり用いないと思います。C#のソース・ファイルを「スクリプト」と表現するのは初めて見ました。
投稿2015/12/30 13:25
編集2015/12/30 13:46総合スコア23272
0
アクセス修飾子に**「protected internal」が抜けています。
また、図に「スクリプト.csと別のファイルで派生させたクラス」と「別のアセンブリで派生させたクラス」**が抜けています。protected/internal/protected internalを説明するにはそれらが必要です。
追記
「スクリプト.csと別のファイルで派生させたクラス」も必要と考えたのは、図からではprotectedが「同じファイル内」でしかアクセスできないように見えるからです。
投稿2015/12/29 23:55
編集2015/12/30 00:03総合スコア5938
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。