为一个解决的问题散分-----------找不到方法void .ctor()

oldmoon 2007-03-17 10:18:51
这几天一直被一个问题缠住:
有三个项目:A,B,C;其中A调用B中的类,B调用C中的类,结果在当B调用C的类Test时出错,而出错的语句却总在新建实例的那一句:Test t=new Test();错误提示,找不到方法void C.Test.ctor(),我一直纳闷,不懂是什么错,搞了快一个星期了一直都不知道错在哪,本来早想在CSDN问,想想还是坚持自己捉摸,捉摸几天真累啊,代码是看了一遍又一遍,没有任何异常,刚突发奇想,把几个生成的dll文件删除了,得了!!!!!!!!真晕啊,真晕!!!

到现在还不知道是什么问题,按说,经过我一次次重新生成式的调试应该会自动覆盖啊!!!郁闷,散下分,也顺便请各位解释一下!!!
...全文
635 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cat_hsfz 2007-03-18
  • 打赏
  • 举报
回复
贴代码来看看吧。
hertcloud 2007-03-18
  • 打赏
  • 举报
回复
Test t=new Test();错误提示
缺构造函数/或构造函数private

找不到方法void C.Test.ctor(),

说明你的C.Test类中 根本 没有 这个方法 或者 方法不是static
需要C.Test t = new C.Test();
t.ctor();
oldmoon 2007-03-18
  • 打赏
  • 举报
回复
你以开头写“有三个项目”是手误吗?如果不是,大概你在工程中引用别的项目或者设置编译策略上有一些坏毛病。

---------------------
我估计是这种问题,因为我在看个这个帖子后,对项目的依赖性有所修改

http://community.csdn.net/Expert/topic/4804/4804145.xml?temp=.6717188
  • 打赏
  • 举报
回复
你以开头写“有三个项目”是手误吗?如果不是,大概你在工程中引用别的项目或者设置编译策略上有一些坏毛病。
  • 打赏
  • 举报
回复
你现在能证明你以前确实写了没带参数的构造函数吗?既然你连dll都删除了,已经毁尸灭迹了,死无对证了。

不过我们可以估计你原来的dll中大概确实没有这个函数。
windykuang 2007-03-17
  • 打赏
  • 举报
回复
接分~~~
oldmoon 2007-03-17
  • 打赏
  • 举报
回复
如果是楼上各位说的情况,就不会只删除dll文件,重新生成就可以了
cpp2017 2007-03-17
  • 打赏
  • 举报
回复
那贴点代码看看?
oldmoon 2007-03-17
  • 打赏
  • 举报
回复
前面的各位大哥说的我当然知道,关键是我写了带参构造函数,也写了没带参函数!!!
cybonline 2007-03-17
  • 打赏
  • 举报
回复
应该是因为你写了带参数的构造函数,但没有写默认的构造函数而造成的.

大多数编译器自动提供默认构造函数,但你只要自己写了任何一个构造函数,编译器提供的默认构造函数就没有了,所以Test t=new Test();就无法成功了
amandag 2007-03-17
  • 打赏
  • 举报
回复
class Test
{
static void Main()
{
//正常,因为编译器提供了默认的构造函数
Test t = new Test();
}
}

class Test
{
private int i;
public Test(int i)
{
this.i = i;
}
static void Main()
{
//正常,因为自己提供了合适的构造函数
Test t = new Test(5);
}
}

class Test
{
private int i;
public Test(int i)
{
this.i = i;
}
static void Main()
{
//错误,自己写的构造函数覆盖了默认的构造函数
Test t = new Test();
}
}
cpp2017 2007-03-17
  • 打赏
  • 举报
回复
Test t=new Test(); 出错,表示没有构造函数.
SmallWhiter 2007-03-17
  • 打赏
  • 举报
回复
jf
amandag 2007-03-17
  • 打赏
  • 举报
回复
应该是因为你写了带参数的构造函数,但没有写默认的构造函数而造成的.

大多数编译器自动提供默认构造函数,但你只要自己写了任何一个构造函数,编译器提供的默认构造函数就没有了,所以Test t=new Test();就无法成功了
  • 打赏
  • 举报
回复
呵呵,你还真逗。

class C
{
public C(){}
.....
}

别忘记写第一句就行了。
glacier111 2007-03-17
  • 打赏
  • 举报
回复
帮顶

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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