首页 新闻 搜索 专区 学院

可访问性不一致: 参数类型比委托的访问性低

0
悬赏园豆:40 [已解决问题] 解决于 2012-04-16 13:26
namespace Heool2
{
    public delegate void DivBySevenHandler(object o , DivBySevenEventArgs e);
    public   class DivBySeventEventArgs : EventArgs
    {
        public readonly int TheNumber;
        public DivBySeventEventArgs(int num)
        {
            TheNumber = num;
        }
    }
    public class DivBySeventListener
    {
        public void ShowOnScreen(object o, DivBySeventEventArgs e)
        {
            Console.WriteLine("遇到了可以被7整除的数,他是:{0}", e.TheNumber);
        }
    }
    public class s1
    {
        public static event DivBySevenHandler EventSeven;
        public static void Main(string[] args)
        {
            DivBySeventListener dbsl = new DivBySeventListener();
            EventSeven += new DivBySevenHandler(dbsl.ShowOnScreen);
            GenNumber();
            Console.ReadLine();
        }
        public static void OnEventSevent(DivBySeventEventArgs e)
        {
            if (EventSeven != null)
                EventSeven(new object(), e);
        }
        public static void GenNumber()
        {
            for (int i = 0; i < 99; i++)
            {
                if (i % 7 == 0)
                {
                    DivBySeventEventArgs e1 = new DivBySeventEventArgs(i);
                    OnEventSevent(e1);
                }
            }
        }


    }
}

C#
等待谱写的主页 等待谱写 | 初学一级 | 园豆:166
提问于:2012-04-16 12:43
< >
分享
最佳答案
1

public delegate void DivBySevenHandler(object o , DivBySevenEventArgs e);这里写错了

应该是:

public delegate void DivBySevenHandler(object o, DivBySeventEventArgs e);这样就可以了。

收获园豆:40
Halower | 小虾三级 |园豆:1723 | 2012-04-16 13:00

这有区别吗?我试了,还是没有用啊

等待谱写 | 园豆:166 (初学一级) | 2012-04-16 13:02

@等待谱写: 

遇到了可以被7整除的数,他是:0
遇到了可以被7整除的数,他是:7
遇到了可以被7整除的数,他是:14
遇到了可以被7整除的数,他是:21
遇到了可以被7整除的数,他是:28
遇到了可以被7整除的数,他是:35
遇到了可以被7整除的数,他是:42
遇到了可以被7整除的数,他是:49
遇到了可以被7整除的数,他是:56
遇到了可以被7整除的数,他是:63
遇到了可以被7整除的数,他是:70
遇到了可以被7整除的数,他是:77
遇到了可以被7整除的数,他是:84
遇到了可以被7整除的数,他是:91
遇到了可以被7整除的数,他是:98

不是区别的问题,是参数类型直接写错了,我怎么输出正常了,呵呵

Code
using System;
namespace Heool2
{
    public delegate void DivBySevenHandler(object o,DivBySeventEventArgs e);//DivBySeventEventArgs
    public class DivBySeventEventArgs : EventArgs
    {
        public readonly int TheNumber;
        public DivBySeventEventArgs(int num)
        {
            TheNumber = num;
        }
    }
    public class DivBySeventListener
    {
        public void ShowOnScreen(object o, DivBySeventEventArgs e)
        {
            Console.WriteLine("遇到了可以被7整除的数,他是:{0}", e.TheNumber);
        }
    }
    public class s1
    {
        public static event DivBySevenHandler EventSeven;
        public static void Main(string[] args)
        {
            DivBySeventListener dbsl = new DivBySeventListener();
            EventSeven += new DivBySevenHandler(dbsl.ShowOnScreen);
            GenNumber();
            Console.ReadLine();
        }
        public static void OnEventSevent(DivBySeventEventArgs e)
        {
            if (EventSeven != null)
                EventSeven(new object(), e);
        }
        public static void GenNumber()
        {
            for (int i = 0; i < 99; i++)
            {
                if (i % 7 == 0)
                {
                    DivBySeventEventArgs e1 = new DivBySeventEventArgs(i);
                    OnEventSevent(e1);
                }
            }
        }


    }
}

 

Halower | 园豆:1723 (小虾三级) | 2012-04-16 13:11

@谢舸哥: 谢谢啊

等待谱写 | 园豆:166 (初学一级) | 2012-04-16 13:31
其他回答(3)
0

HelloWorld2.DivBySevenEventArgs的访问级别的问题,这个你是怎么写的?

qia | 园豆:164 (初学一级) | 2012-04-16 12:57
0

你看看你的helloword2中的這個參數類型與heool2中。可以訪問的範圍不一致。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-04-16 12:57
0

DivBySevenEventArgs 不是 public 的

注意你的代码, DivBySevenEventArgs 和 public   class DivBySeventEventArgs ,是不是你写错了。

Launcher | 园豆:45045 (高人七级) | 2012-04-16 12:59

没有关系啊,没有写错,还是没有解决问题啊

支持(0) 反对(0) 等待谱写 | 园豆:166 (初学一级) | 2012-04-16 13:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册