不包含带x参数的构造函数

时间:2014-12-02 17:50:34

标签: c# asp.net visual-studio-2013 webforms

使用visual studio这个错误是随机发生的。我试图清理构建但没有成功。该类可以查看该文件夹中包含的类的所有其他构造函数,但是日期。例如,它可以看到连接构造函数

Visual Studio

SqlDataReader rdr = cmd.ExecuteReader();
if (!(rdr == null || !rdr.HasRows))
{
    while (rdr.Read())
    {

        Dates dates = new Dates(rdr.GetGuid(0), rdr.GetString(1), 
            rdr.GetDateTime(2), rdr.GetString(3), rdr.GetString(4), 
            rdr.GetDateTime(5));
        yield return dates;

    }

}

日期等级

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GoDating.Models
{
    public class Dates
    {
        public Guid id;
        public string firstname;
        public DateTime dob;
        public string Image;
        public string dateLocation;
        public DateTime date;


        public Dates(Guid id, string firstname, DateTime dob, string Image,string dateLocation,DateTime date)
        {
            this.id = id;
            this.firstname = firstname;
            this.dob = dob;
            this.Image = Image;
            this.dateLocation = dateLocation;
            this.date = date;
        }

    }
}

连接类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GoDating.Models
{
    public class Connection
    {
        public Guid id;
        public string firstname;
        public DateTime dob;
        public string Image;


        public Connection(Guid id, string firstname, DateTime dob, string Image)
        {
            this.id = id;
            this.firstname = firstname;
            this.dob = dob;
            this.Image = Image;
        }
    }
}

错误消息

Error   1   'GoDating.Dates' does not contain a constructor that takes 6 arguments  C:\Users\###\SkyDrive\GODating\GODating\GoDating\Database_Operations\DateDAO.cs 52  39  GoDating

2 个答案:

答案 0 :(得分:5)

替换

Dates dates = new Dates(
    rdr.GetGuid(0), 
    rdr.GetString(1), 
    rdr.GetDateTime(2), 
    rdr.GetString(3), 
    rdr.GetString(4), 
    rdr.GetDateTime(5));

GoDating.Models.Dates dates = new GoDating.Models.Dates(
    rdr.GetGuid(0), 
    rdr.GetString(1), 
    rdr.GetDateTime(2), 
    rdr.GetString(3), 
    rdr.GetString(4), 
    rdr.GetDateTime(5));

现在它正在解析为GoDating.Dates,它必须没有包含6个参数的构造函数。

或者正如您已经想到的那样,为您的班级使用唯一的名称。

答案 1 :(得分:1)

使用完全限定名称或完整程序集名称,如

GoDating.Models.Dates dates = new GoDating.Models.Dates(rdr.GetGuid(0),rdr.GetString(1),             rdr.GetDateTime(2),rdr.GetString(3),rdr.GetString(4),             rdr.GetDateTime(5));