为什么我收到错误可访问性不一致?

时间:2014-07-18 20:42:45

标签: c# .net

我有一个班级:

class NewsLine
        {
            public string text;
            public string original_time;
            public string link;
        }

然后一个方法:

private void AddOnlyNew(List<NewsLine> filtered_lnl)
        {
            NewsLine lnl = new NewsLine();
            for (int x = 0; x < filtered_lnl.Count; x++)
            {
                if (!AllNews.Contains(filtered_lnl[x]))
                {
                    AllNews.Add(filtered_lnl[x]);
                }
                for (int y = 0; y < AllNews.Count; y++)
                {
                    Compare(filtered_lnl[x], AllNews[y]);
                }
            }            
        }

比较方法:

public static int Compare(NewsLine n1, NewsLine n2)
        {
            if (n1.text != n2.text)
                return string.Compare(n1.text, n2.text);
            else if (n1.original_time != n2.original_time)
                return string.Compare(n1.original_time, n2.original_time);
            else
                return string.Compare(n1.link, n2.link);
        }

我比较Cpmare方法我遇到两个错误:

错误1可访问性不一致:参数类型'ScrollLabelTest.ListsExtractions.NewsLine'的方法不如方法'ScrollLabelTest.ListsExtractions.Compare(ScrollLabelTest.ListsExtractions.NewsLine,ScrollLabelTest.ListsExtractions.NewsLine)'

错误2可访问性不一致:参数类型'ScrollLabelTest.ListsExtractions.NewsLine'的方法不如方法'ScrollLabelTest.ListsExtractions.Compare(ScrollLabelTest.ListsExtractions.NewsLine,ScrollLabelTest.ListsExtractions.NewsLine)'

2 个答案:

答案 0 :(得分:0)

因为您的Compare方法是公开的,并接受内部NewsLine的参数。因此,要么将Compare更改为内部,要么将NewsLine公开。

答案 1 :(得分:0)

这是因为您的比较方法是公开的,但您的类新闻线是私有或内部的;它比Compare()更难访问。这就是“不一致”的来源。让Newsline公开,这应该有用。