我知道 IDataReader
是接口,而 DataReader
是具体类型,但我仍然不知道何时使用每个。我需要遍历数据,这可以使用 Datareader
和 IDataReader
两者实现。有没有更好的方法来决定何时使用接口或具体类型?
我知道 IDataReader
是接口,而 DataReader
是具体类型,但我仍然不知道何时使用每个。我需要遍历数据,这可以使用 Datareader
和 IDataReader
两者实现。有没有更好的方法来决定何时使用接口或具体类型?
SqlDataReader
和所有其他数据提供程序都实现了IDataReader
接口。如果您认为将来可能会从 sql 更改到 oracle 或其他什么的,那么请使用IDataReader
。您可以奢侈地更改,而不必更改使用IDataReader
的代码。否则,您可以使用SqlDataReader
。但是,如果您使用IDataReader
,这将是一种解耦设计,推荐使用。
当您想将读取与(创建)实际读取器分离时,可以使用接口。例如,在测试或您希望准备切换数据库时。
但通常,DataReader消费代码与读取器紧密耦合,并且不需要使用接口。
IDataReader
是一个接口。如果你的方法接受一个 IDataReader
,那么这意味着它将接受任何使用该接口的内容。这意味着你可以使用任何数据读取器。该方法将接受你的数据读取器,因为数据读取器实现了 IDataReader
接口。
这样做的优点是该方法不特定于特定类型的数据读取器。你也可以编写自己的类来实现该接口。
请参考此 LINK。