2

デリゲート フィールドは他のフィールドと同じで、クラスがインスタンス化されるまで使用できないと考えました。でも:

 class Program
    {

        delegate void lol (int A);
         string myX;

        static void Main(string[] args)
        {
            lol x = ... //works     

            myX //does not exist, 
        }
    }
4

2 に答える 2

6
delegate void lol (int A);

デリゲートはフィールドではなく、「ネストされた型」であるため、他の型と同じように使用できます。

また、はインスタンス フィールドであるためmyX、 内の参照Mainは不正です。static method( )myX内で使用するには、instance.myX を使用する必要があります。Main() here

より明確にするために、次のことを試してください。何が間違っているのかがわかります

class Program
{
    delegate void lol (int A);
     string myX;
     lol l; 

    static void Main(string[] args)
    {
        l = null; //does not exist
        myX //does not exist, 
    }
}
于 2013-10-14T14:59:10.973 に答える