.net(C#)接口实现问题,急!高手请进!

云成致雨 2009-01-10 11:37:04
请教在一个类中定义了一个接口:
using System;
using System.Collections.Generic;
using System.Text;

namespace Ne.B2logic
{
interface Iblogic
{
public void invoke();
}
}
然后在下面实现
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Ne.DataAccess.select;

namespace Ne.B2logic
{
public class procgetpdts:Iblogic
{//获取产品


private DataSet _resultset;
public procgetpdts()
{ }
public void invoke()
{
Productselectdata slpdt = new Productselectdata();
resultset = slpdt.Get();

}
public DataSet resultset
{
get { return _resultset; }
set { _resultset = value; }
}



}
最后在页面代码中使用了其中的功能:
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Ne.B2logic;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{loadpts();}

}
private void loadpts()
{
procgetpdts pdts = new procgetpdts();
try
{ pdts.invoke(); }
catch
{ Response.Redirect("Error.aspx"); }
pdlst.DataSource = pdts.resultset;
pdlst.DataBind();
}
}
可是被ASP。net提示说
编译器错误信息: CS0117: “Ne.B2logic.procgetpdts”并不包含“invoke”的定义

源错误:



行 23: procgetpdts pdts = new procgetpdts();
行 24: try
行 25: { pdts.invoke(); }
行 26: catch
行 27: { Response.Redirect("Error.aspx"); }
请问这里面我哪一步错了吗?
...全文
192 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
云成致雨 2009-01-13
  • 打赏
  • 举报
回复
好了这个问题解决了我的问题主要还是在interface Interface1定义的时候前加了public的问题。结贴大家都有分.
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wangbolin 的回复:]
请教在一个类中定义了一个接口:
using System;
using System.Collections.Generic;
using System.Text;

namespace Ne.B2logic
{
public interface Iblogic
{
//public
void invoke();
DataSet resultset;
}
}
然后在下面实现
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Ne.DataAccess.select;

[/Quote]
这样也不行吧,
Ne.B2logic.Iblogic”不可访问啊?
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
什么意思?
wangbolin 2009-01-10
  • 打赏
  • 举报
回复
请教在一个类中定义了一个接口:
using System;
using System.Collections.Generic;
using System.Text;

namespace Ne.B2logic
{
public interface Iblogic
{
//public
void invoke();
DataSet resultset;
}
}
然后在下面实现
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Ne.DataAccess.select;

namespace Ne.B2logic
{
public class procgetpdts:Iblogic
{//获取产品


private DataSet _resultset;
public procgetpdts()
{ }
public void invoke()
{
Productselectdata slpdt = new Productselectdata();
resultset = slpdt.Get();

}
public DataSet resultset
{
get { return _resultset; }
set { _resultset = value; }
}



}
最后在页面代码中使用了其中的功能:
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Ne.B2logic;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{loadpts();}

}
private void loadpts()
{
Iblogic iblogic = new procgetpdts();
try
{ iblogic .invoke(); }
catch
{ Response.Redirect("Error.aspx"); }
pdlst.DataSource = iblogic.resultset;
pdlst.DataBind();
}
}
t13476189169 2009-01-10
  • 打赏
  • 举报
回复
mark
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tmxk2002 的回复:]
1、把整个程序全部重新编译下,如果不行检查procgetpdts这个关键字是否在程序代码其他地方也存在,也就是你的页面有没有定义这个单词的,我担心你里面有两个这样的类,冲突了。
[/Quote]
定义没有重的。也重新编译了还是没有效果啊?
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 barry_bai 的回复:]
接口改一下试试,接口定义加上public,方法定义去掉public:

using System;
using System.Collections.Generic;
using System.Text;

namespace Ne.B2logic
{
public interface Iblogic
{
void invoke();
}
}
[/Quote]
没效过啊
  • 打赏
  • 举报
回复
1、把整个程序全部重新编译下,如果不行检查procgetpdts这个关键字是否在程序代码其他地方也存在,也就是你的页面有没有定义这个单词的,我担心你里面有两个这样的类,冲突了。
zhantianyou 2009-01-10
  • 打赏
  • 举报
回复
up
看不出問題!
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
没人会吗?
barry_bai 2009-01-10
  • 打赏
  • 举报
回复
接口改一下试试,接口定义加上public,方法定义去掉public:

using System;
using System.Collections.Generic;
using System.Text;

namespace Ne.B2logic
{
public interface Iblogic
{
void invoke();
}
}
捷哥1999 2009-01-10
  • 打赏
  • 举报
回复
我用简单的例子验证过,不会有问题的,我编写了一个简单的接口,只有一个invoke方法,然后编写了一个类,实现了这个接口,然后在asp.net页面中引用这个类,没有问题的呀,代码如下:
=============================Interface1========================
using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsFormsApplication1
{
interface Interface1
{
void invoke();
}
}

===========================class1======================
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public class Class1 : Interface1
{
public void invoke()
{
MessageBox.Show("class1 implement interface1'invoke methor");
}
}
}
============================ WebApplication1========================
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WindowsFormsApplication1;

namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
invokeMethod();
}
private void invokeMethod()
{
WindowsFormsApplication1.Class1 c1 = new Class1();
c1.invoke();
}
}
}
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
引用有加的,问题还是存在
捷哥1999 2009-01-10
  • 打赏
  • 举报
回复
你是否只是在asp.net页面中的引用部分添加了一行:
using Ne.B2logic;

建议在asp.net项目中右键点击“引用”,添加对Ne.B2logic所在项目的引用,然后再试试看。
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
问题还没解决啊
云成致雨 2009-01-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 niitnanfeng 的回复:]
按1楼说的去做。
[/Quote]
老兄你看清楚我的问题再说吧。不是这么定义的。
niitnanfeng 2009-01-10
  • 打赏
  • 举报
回复
按1楼说的去做。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧