protected internalについて
アセンブリA.DLLで定義したクラスを、アセンブリB.EXEで直接は使えないが継承して使うことができる。というようなキーワードだと思い、
using System; protected internal class Programmer { public void say() { Console.WriteLine("something said."); } }
のようなコードを書いてコンパイルしたが、
>csc /target:library base.cs Microsoft (R) Visual C# 2008 Compiler version 3.5.21022.8 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved. base.cs(3,26): error CS1527: 名前空間で定義された要素は明示的に private、protected、または protected internal に宣言することはできません。 >
と、エラーになった。名前空間を付けても同様。
MSDN(アクセシビリティ レベル (C#リファレンス))を読むと、どうもメンバに対して付ける修飾子のようである。
ということは、クラスにはpublicかinternal(か無指定(ってなに?))しかないってこと?
ちゃんと言語仕様を読まないと不明。。