修饰符public对此项无效

时间:2010-09-06 15:49:29

标签: c#

我收到错误

  

修饰符public对此项目无效

这是我的代码,请帮助我。

    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    public partial class First : System.Web.UI.Page,test 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = test1("Hi", 1).ToString();
        }

    }
    public class Base
    {
        public int test1(int x)
        {
            return x;
        }
        public string test1(string x)
        {
            return x;
        }
        public string test1(string x, int y)
        {
            return x + y;
        }
    }
    public interface test
    {
        public int test1(int x);
        public string test1(string x);
        public string test1(string x, int y);
    }

谢谢, 普拉迪普

2 个答案:

答案 0 :(得分:19)

您的界面声明应如下所示:

public interface test
{
    int test1(int x);
    string test1(string x);
    string test1(string x, int y);
}

访问修饰符在interface declarations上无效:

  

接口由方法组成,   属性,事件,索引器或任何   这四个成员的组合   类型。界面不能包含   常量,字段,运算符,实例   构造函数,析构函数或类型。   它不能包含静态成员。   接口成员是自动的   公众,他们不能包括任何   访问修饰符。

答案 1 :(得分:2)

从接口方法声明中省略“public”关键字。这是无效的,接口总是具有公共可访问性。

在Base类中定义这些方法也不够好。让Base类继承“test”或将方法移动到First。

声明Page_Load事件处理程序受保护也是可疑的,它应该是私有的,因为无法覆盖它并且直接从派生自First的类调用它通常是一个错误。