我写一段C#代码,从外部引入了一个类XXX,准备用XXX x= new XXX()实例化,提示是此类没有提供构造函数.
看一下帮助,还真是的.
我对C#刚开始,可能有些地方了解不够,请问可能是什么原因?谢谢
解决方案 »
- 在线等 C#中怎么调用RGB()方法
- 手机短信发送条形码
- [急,在线等]一个关于构造函数传参的问题
- C# 如何在窗体中模拟web的Form提交
- Mother of all Visual Studio 2005 RTM bugs
- 求.net(c#)版软件源码(大概在2005年1月份到5月份在CSDN发的)
- 如何重新启动自己
- 是否所有能连电脑的手机都可以通过AT指令来发短信?
- 命名空间 System 不是比System.Data 的范围要大吗?用了using System后, 为什么还要用using System.Data
- 2个线程同时做同一个操作,不影响主线程的其他操作
- asp.net 中怎样把string值转换当作变量名进行操作?
- 求一简单的正则表达式
比如没声明public之类的
如:class Test
{
private static Test t=new Test(); public Test GetTestObj
{
get
{
return t;
}
}
}
class Test
{
private static Test t=new Test(); public static Test GetTestObj
{
get
{
return t;
}
}
}
比如://==============类A======================
public class A
{
internal A(int num)
{
//构造函数
}
}//==============类B======================
public class B
{
public B()
{
}
public A MakeA(int num)
{
return new A(num);
}}//======================================
调用举例B bb=new B();
A aa=B.MakeA(123);
A aaa=new A() //错误!
我的例子你没看懂吗?
我只是想说明为什么会出现你提到的那个问题。如果类是别人写的,那么你就得阅读别人的文档,看看怎么去构造一个新实例。按我的例子来说,A类的构造函数是internal性质的,即只有在同一个assembly里的类才能访问,故通过 B.MakeA 来构造A。
你可以看一个更具体的例子,比如类的ExecuteReader()。查阅MSDN:
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader(VS.80).aspx
但是你说的例字,那个xxx类应该说明是有构造函数的,他的帮助上也说没有.
private XXX(){}这样的化XXX应该提供了一个静态函数来创建该类的实例。查查看有没有这种函数。或者是有没有XXXFactory之类的辅助类。
如果是你说的情况,应该帮助中说明一下,而且也没有XXXFactory辅助函数.
为什么要这么做呢?
因为有些类实在没有必要实例化它,比如它仅包含静态成员,我们调用时只需要利用类型来调用,而不是实例来调用,所以不需要构造函数。
实际上,我需要这个类的成员,他的成员确实是只读的,只是我不清楚怎样获取他的实例.
如果他的构造函数是private,我也应该可以看到吧,可是我看不到,帮助中也没有说明.
我用new实例的话,提示没有定义构造函数.
用XXX x;
x.aa就提示没有定义的x.
没有,
实际上,我是从一个开发包开始进行开发的
这个开发包比方说:
ControlBase,帮助上说,这个ControlBase在某些时候会截获对他的调用,截获的结果
就放在XXX类的实例中,我从ControlBase继承得到我的类,可是我找不到在那里得到XXX的实例,
反正XXX类本身没有构造函数,我找了一下ControlBase的方法,也没有返回XXX的,属性也没有.
{
public xxx()
{
....
}
}
把构造器加起看哈行不安