ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

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(か無指定(ってなに?))しかないってこと?
ちゃんと言語仕様を読まないと不明。。