我们在classname之前使用abstract关键字来限制创建类的实例.
但是datareader不是一个抽象类,但我们不能创建它的实例.你可以解释为什么吗?
我搜索了它然后我发现它没有构造函数,这就是为什么我们不能创建对象,但据我所知,如果没有构造函数,那么编译器自动创建一个默认的构造函数.
请帮忙...
DbDataReader是一个抽象类.如果你的意思是SqlDataReader,它没有公共构造函数,这就是你无法创建实例的原因.它只有一个internal构造函数(ILSpy):
// System.Data.SqlClient.SqlDataReader
internal SqlDataReader(SqlCommand command, CommandBehavior behavior)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
要创建一个
SqlDataReader,必须调用ExecuteReaderSqlCommand对象的方法,而不是直接使用构造函数.
一般来说,避免实例化是一个好主意,DataReader因为它只需要通过它来创建SqlCommand.ExecuteReader.
| 归档时间: |
|
| 查看次数: |
3335 次 |
| 最近记录: |