Base class does not contain a constructor that takes '0' argument

刚刚在写一段直播室网站中的一段程序遇,突然遇到一个错误,如下

‘TVLLKBLL.BaseClass‘ does not contain a constructor that takes 0 arguments,根据撑握的C#知道来剖析一下该错误的原因

俱体情况是这样的,业务逻辑中有两个类,分别是

Public class BaseClass

{

public BaseClass (string sql)

{

}

}

Public class BaseClassHelp:BaseClass

{

public BaseClassHelp (string sql)

{

}

}

其中 BaseClassHelp 继承自PagesClass

编译后会提示‘BaseClass‘ does not contain a constructor that takes 0 arguments

为什么呢?

我们知道类构造函数是层层向上寻找,直到基类,然后执行,然后一层层向下执行,此时我们来看BaseClassHelp类中的构造函数BaseClassHelp(string sql);如果向父类执行,此时却没有指定执行父类中的哪一个构造函数,默认情况下会去执行父类中无参数的构造函数,此时如果将父类修改成如下,即可成功编译

Public class BaseClass

{

public BaseClass ()

{

}

public BaseClass (string sql)

{

}

}

因为他有了无参构造函数

也或者在子类指定要执行父类中哪一个构造函数,子类修改成如下

Public class BaseClassHelp:BaseClass

{

public BaseClassHelp (string sql) base(sql)

{

}

}

这时子类构造函数指定执行父类中有一个参数的构造函数

Base class does not contain a constructor that takes '0' argument

时间: 2024-11-13 07:28:48

Base class does not contain a constructor that takes '0' argument的相关文章

C# does not contain a constructor that takes no parameter

C# 中子类要重用父类的构造函数时, 一般会在子类构造函数后面调用 : base(paratype, para). 如果父类有一个參数个数为1的构造函数, 没有 0 參构造函数. 子类想要重用这个构造函数, 如果没有写 :base(paratype, para), 就会有这个错误. 由于假设没写, VS 会觉得子类是继承父类的 0 參构造函数, 可是由于父类并未定义 0 參构造函数. 所以就会报错. 另外, 能够在base()中调用一个静态方法来改动子类构造函数的參数在传递给父类构造函数. 如:

语言独立性和与语言无关的组件

语言独立性和与语言无关的组件 .NET Framework 4.5 .NET Framework 是独立于语言的. 这意味着,作为开发人员,您可以使用面向 .NET Framework 的多种语言(例如,C#.C++/CLI.Eiffel.F#.IronPython.IronRuby.PowerBuilder.Visual Basic.Visual COBOL 以及 Windows PowerShell)之一进行开发. 您可以访问针对 .NET Framework 开发的类库的类型和成员,而不必

网络游戏中应用可插拔工厂处理消息

嫌翻得不好的去看后面的原文吧 ———————————————————————————————————————————————————————————— 问题 今天的网络多人游戏必须处理大量不同的消息.有标准的消息(创建玩家.删除玩家.聊天等等),也有游戏中特定的消息.所有这些消息都有它们自己的数据项,它们必须能够通过一个连接发送出去并在另一端重新组装.作为网络游戏开发者,你的工作就是梳理一切以便你的游戏能够以一种优雅的方式发送和接收消息. 在C++中最明显的做到这一点方式就是用类来表示不同的消息

Google JavaScript Style Guide

转自:http://google.github.io/styleguide/javascriptguide.xml Google JavaScript Style Guide Revision 2.93 Aaron Whyte Bob Jervis Dan Pupius Erik Arvidsson Fritz Schneider Robby Walker Each style point has a summary for which additional information is ava

Cpp Chapter 14: Reusing code in C++ Part1

14.1 Classes with object members ) The valarray class To declare an object, you follow the identifier valuearray with angle brackets that contain the desired type: valarray<int> q_values; valarray<double> weights; Several examples that use the

C#编程(6_类)

面向对象的程序设计(OOP,Object-Oriented Programming)是一种基于结构分析的.以数据为中心的程序设计方法.其主要思想是将数据及处理这些数据的操作都封装(Encapsulation)到一个成为类(Class)的数据结构中,使用这个类时,只需要定义一个类的变量即可. “类”是一种构造,这种构造将其他类型的变量.方法.事件组合在一起,从而创建自己的自定义类型.如果没有声明为静态类,客户端代码就可以创建赋给变量的“对象”或“实例”,从而使用该类.在对变量的所有引用都超出范围之

Java中的动态代理以及Proxy类的偷瞄

动态代理机制 所谓动态代理,即通过代理类Proxy的代理,接口和实现类之间可以不直接发生联系,而可以在运行期(Runtime)实现动态关联. Java动态代理类位于Java.lang.reflect包下,主要涉及到两个类. (1)接口InvocationHandler:该接口中仅定义了一个方法. Object invoke(Object obj, Method method, Object[] args); 在实际使用时,第一个参数obj一般指代理类,method是被代理的方法,args为该方法

implicit/explicit conversion (转载)

原文: http://www.cnblogs.com/visayafan/archive/2011/11/27/2265349.html 转http://blog.csdn.net/callmeback/article/details/4039304 不翻译了,比较简单. 这个 <ANSI/ISO C++ Professional Programmer's Handbook >是这样说的 explicit ConstructorsA constructor that takes a singl

使用 Java AOP API 完成动态代理的一些注意事项

代码示例 Java原生API中,动态代理常用的API有两个:InvocationHandler接口和Proxy类 首先上代码StaffLoggerAspect.java public class StaffLoggerAspect implements InvocationHandler { Object target; public Object getObject(Object object) { target = object; return Proxy.newProxyInstance(