c#事件的遇到有关问题

c#事件的遇到问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _02事件
{
    delegate void Dele();//定义一个委托1
    class Bank
    {
       
        public event Dele ji;//声明一个事件2

        public void Hji()//4触发事件
        {
        ji();
        }
    
    }
    class Phone
    {
    public static void Kok()
    {
    Console.WriteLine("你触发了这个事件");//3
    }
    
    }
    class Program
    {
        static void Main(string[] args)
        {
            Bank fg=new Bank();
            Phone op=new Phone();

            fg.ji += new Bank.Dele(op.Kok);//这行代码会报错,各位大神帮帮忙

            Console.ReadKey();                                        

          
        }
    }
}

------解决思路----------------------
Bank fg = new Bank();
fg.ji += Phone.Kok;
fg.Hji();
Console.ReadKey();

------解决思路----------------------
1、Phone类的Kok方法是静态的,你不能通过实例调用,正确的调用方式:

Phone.Kok();

2、Bank类的ji是实例变量,需要通过实例调用,调用方式如下:

fg.ji
//或者
new Bank().ji;

3、fg.ji是一个事件,注册事件需要使用委托,正确调用方式如下:

fg.ji += Phone.Kok;
//或者
fg.ji += new Dele(fg_ji);
static void fg_ji()
 {
      Phone.Kok();
}

------解决思路----------------------
3、注册事件后触发事件,事件才会执行,触发事件的代码如下
fg.Hji();