什么使 C# non-inheritable 或 non-Instantiable 中的 SqlDataReader class

What makes SqlDataReader class in C# non-inheritable or non-Instantiable

需要了解 C# 如何使 SqlDataReader class 不可继承和不可实例化。

命名空间:System.Data.SqlClient

SqlDataReader class header :

public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable, System.Data.Common.IDbColumnSchemaGenerator{

}

问题 1: 看到的class是public.

既然class是public::那为什么不能继承呢

问题二: Constructor is not Private : Infact on seeing the definition of SqlDataReader : no constructor was seen :: 所以我想 C# 将标记为默认的默认构造函数是 Public 当没有找到构造函数时发生的一个 :: 因此,尽管据说有一个 Public 构造函数,但为什么不能实例化。

此外,我找不到这个问题 link 中回答和接受的“内部”构造函数: why cant SqlDataReader class be inherited?

如能指出上述思路中的错误之处,将不胜感激

我不确定您正在查看哪个源代码(可能是基本的反汇编)。 看看 github SqlDataReader Source

它只有内部构造函数,因此无法实例化。