您的位置:程序门 -> .net技术 -> c#



关于c#类的构造函数重载


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于c#类的构造函数重载[已结贴,结贴人:javesun]
发表于:2007-04-03 23:21:52 楼主
有一问题:想在类的构造函数中传入多个变量,其中有几个变量想有默认值,但c#不支持,只能重载。
class   c1
{
    public   c1()
    {
        c1( " ");
    }
    public   c1(string   s)
    {
        .....
    }
}

但是在编译的时候报错,此想法如何实现?
发表于:2007-04-03 23:23:591楼 得分:10
class   c1
{
    public   c1()   :   this( " ")
    {

    }
    public   c1(string   s)
    {
        .....
    }
}
发表于:2007-04-04 08:45:462楼 得分:0
楼上为什么要这么写?
发表于:2007-04-04 08:51:043楼 得分:0
我怎么这么写一直不出错呢
构造函数重载   没有任何问题啊
发表于:2007-04-04 08:53:164楼 得分:0
class   c1
{
    private   string   str   =   string.empty;
    public   c1()
    {
       
    }
    public   c1(string   s)
    {
        str   =   s;
    }
}
发表于:2007-04-04 08:55:115楼 得分:0
有默认值防函数里不一样嘛?
重载是没问题的
发表于:2007-04-04 08:56:116楼 得分:5
1楼正解,调用别的构造函数要用this
public   c1()   :   this( " ")

调用基类构造函数用base
发表于:2007-04-04 08:56:417楼 得分:0
不是重载的问题,是调用的问题
发表于:2007-04-04 08:57:028楼 得分:0
注意重载不能发生签名一致的情况。
class   c1
{
    private   string   str   ;
    private   string   name;

    public   c1()
    {
       
    }

    public   c1(string   s)
    {
        str   =   s;
    }
   
    public   c1(string   name)
{
        this.name=name;
}
}

上面就会发生错误
发表于:2007-04-04 09:11:589楼 得分:0
mark
发表于:2007-04-04 09:18:5110楼 得分:5
构造函数比较特殊,因为它是由系统自动调用的,所以其不能在任何方法中被调用,即使是调用方法也是构造函数。但是有时候又在构造函数中调用另一个签名的构造函数,所以c#提供了一种语法,即this。

显然构造函数不能被任何函数所调用是有道理的。如果能被调用,那他的返回值该是多少?是不是新创建一个实例?

    public   c1()
    {
        c1( " ");
    }

这样是创建一个实例还是两个实例?
c1( " ")返回值是多少?
如果创建两个实例,那么通过new那边的代码得到的是什么?
发表于:2007-04-04 09:19:2811楼 得分:0
但是有时候又在构造函数中调用另一个签名的构造函数=>
但是有时候又需要在构造函数中调用另一个签名的构造函数
发表于:2007-04-04 09:41:4812楼 得分:0
to   viena(维也纳n02)   :

调用别的构造函数要用this
调用基类构造函数用base,
在什么地方可以找到这样的资料?
发表于:2007-04-04 13:03:3113楼 得分:0
msdn   书   internet
发表于:2007-04-04 13:09:2714楼 得分:0
我记得msdn   webcast上有篇讲到过这个东东,
我找找再贴
发表于:2007-04-04 13:24:1015楼 得分:0
c#语言规范里面就能找到,vs的帮助里面也有,多看帮助很多问题就没了……
发表于:2007-04-05 01:01:0416楼 得分:0
to   javesun:
建议您安装visual   studio同时安装msdn,这样的问题90%可以从那里找到答案。
发表于:2007-04-05 01:11:3117楼 得分:0
构造函数的参数的个数类型都不能有重复的出现


快速检索

最新资讯
热门点击