将SqlDataReader作为参数和构造函数参数发送给构造函数错误

本文关键字:参数 构造函数 错误 SqlDataReader | 更新日期: 2023-09-27 18:15:44

我创建了一个公共类并编写了一个带有如下参数的公共构造函数:

public Patient(SqlDataReader reader, string p) {
        if (p == "L") {
            Name = reader[0].ToString();
        }
        else { }
    }

那么我使用了这个构造函数,比如

SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Patient myP(reader, "L");                    
                }

然后在调试过程中,我得到了错误:error 49 Expected;Or =(不能在声明中指定构造函数参数)

问题在哪里,我该如何解决它?

将SqlDataReader作为参数和构造函数参数发送给构造函数错误

这种语法根本无效;试一试:

Patient myP = new Patient(reader, "L");

或(相同的结果):

var myP = new Patient(reader, "L");

您应该使用new操作符的构造函数,如;

Patient p = new Patient(reader, "L");

你的语法在c#中是无效的。

源自new Operator (C# Reference)

用于创建对象和调用构造函数