きくちさんのところ
http://www.dotcs.com/weblogx/permalink.aspx/37674185-b2b5-48d8-ac30-8fd747d3d84a
http://www.dotcs.com/weblogx/permalink.aspx/91adb226-a267-4c59-aaf8-3c50a237aebb
元ネタ系
http://weblogs.asp.net/okloeten/archive/2003/11/01/35176.aspx
http://wesnerm.blogs.com/net_undocumented/2004/06/c_changes.html
friendって結構諸刃系の仕様だと個人的には思っています。
アクセシビリティって現在では
- public
- protected
- private
- internal
- protected internal
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfDeclaredAccessibilityPG.asp
の5種類あるんですが、範囲を意味するところはあるのですが横のつながりってないんですよね。
internalなクラスがaアセンブリの中にあるとして、bアセンブリからaクラスを継承するためにはbアセンブリにあると実現不可能で、aアセンブリに格納するしかありません。
うまく使わないと1巨大アセンブリになってしまいます。
ま、そういうことのないようにfriend assemblyっていうキーワードなんでしょうが、実際に業務アプリなどを作る立場では使わないでいけると思います。
friendって他のアクセシビリティが縦の関係なのに、横の関係をさすことになりますから気をつけて使わないといけませんね。
#friend assemblyがいいならfriend classはどうなんだいという話になっちゃいますよ。