Delegate
名前空間スコープ内で直接宣言するよりも、クラススコープ内で型を宣言することの長所と短所は何ですか?私は次の2つを意味します-
namespace MyNamespace
{
public delegate string NamespaceScopeDelegate(int x, int y);
public class ClassX
{
//class members
}
}
と、
namespace YourNamespace
{
public class ClassA
{
public delegate string ClassScopeDelegate(int x, int y);
//...
//other class members
}
}
後者のシナリオを使用するには、どのような実用的なシナリオが必要ですか?私はそれが正確にどこに適切であるかを意味しますか?
編集 :
最初のケースでは、デリゲートタイプをインスタンス化する必要があるときはいつでも、次のように実行できます-
var delegateInstance = new NamespaceScopeDelegate(MethodToPoint);
しかし、2番目のケースでは、囲んでいる型名を-として使用する必要があります。
var delegateInstance = new ClassA.ClassScopeDelegate(MethodToPoint);
なぜ私はそれをしたいのですか?2番目のケースは、私がまだ気付いていない種類のカプセル化を提供しますか?この種のアクセシビリティを必要とする特別なシナリオはありますか?