加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#:初学者CLASS构造函数问题

发布时间:2020-12-15 19:37:36 所属栏目:百科 来源:网络整理
导读:public class ElapsedTime{ public int hours; public int minutes; public void ElapsedTime(int h,int m) { hours = h; minutes = m; }} 从另一个事件我这样做: ElapsedTime BeginningTime = new ElapsedTime(); 我如何初始化h和m? 当我尝试这样做时:Be
public class ElapsedTime
{
    public int hours;
    public int minutes;
    public void ElapsedTime(int h,int m)
    {
        hours = h;
        minutes = m;
    }
}

从另一个事件我这样做:

ElapsedTime BeginningTime = new ElapsedTime();

我如何初始化h和m?

当我尝试这样做时:BeginningTime.ElapsedTime(7,7);

它给了我这个错误:

Error 1 ‘ElapsedTime’: member names
cannot be the same as their enclosing
type

我想要的是一个带有接受初始化值的构造函数的类.我希望能够打电话给它.

更新:

我现在有 :

public class ElapsedTime
        {
            private int hours;
            private int minutes;
            public ElapsedTime(int h,int m)
            {
                hours = h;
                minutes = m;
            }
        }

它在公共ElapsedTime上给了我同样的erorr(int h,int m)

解决方法

类的构造函数需要与类本身的名称相同.现在,参数h和m使它成为参数化构造函数.要初始化此类的实例,您需要为这些类指定值.

ElapsedTime beginningTime = new ElapsedTime(7,7);

通过变量调用构造函数是不可行的:

ElapsedTime beginningTime;
beginningTime.ElapsedTime(7,7); // This will cause an error,as your constructor isn't a method...

在inroder中是一个类初始值设定项,构造函数没有返回类型(既不是void).

当然,如果您想要一个以某种格式提供值的属性,则需要公开一个属性,该属性将为您提供实例化实例的值:

public class ElapsedTime {
    public ElapsedTime(int h,int m) {
        Hours = h;
        Minutes = m;
    }

    public int Hours { get; private set; }
    public int Minutes { get; private set; }
    public string ElapsedTime {
        get {
            return string.Format("{0}:{1}",Hours,Minutes);
        }
    }
}

我是否正确理解了您的问题?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读