代码之家  ›  专栏  ›  技术社区  ›  MPelletier

为什么IntelliSense不在DataTableReader上提供Dispose?

  •  0
  • MPelletier  · 技术社区  · 7 年前

    DataTableReader 对象,我正在检查我的代码,以确保所有可丢弃的东西都确实被处理掉了。

    DataTableReader IDisposable ,但IntelliSense似乎没有意识到这一点:

    enter image description here

    然而,它确实适用于其他一次性类,例如 FileStream :

    enter image description here

    一次性的,对吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   TyCobb    7 年前

    这是因为 DbDataReader Dispose 方法具有 EditorBrowsableAttribute 设置为从不告诉VS不要显示它。为什么?我不确定。

    [EditorBrowsableAttribute(EditorBrowsableState.Never)]
    public void Dispose() {
        Dispose(true);
    }
    
    protected virtual void Dispose(bool disposing) {
        if (disposing) {
            Close();
        }
    }
    

    资料来源: https://referencesource.microsoft.com/#System.Data/System/Data/Common/DbDataReader.cs,f7c2de36229de361

        2
  •  0
  •   MPelletier    7 年前

    DbDataReader ,DataTableReader的父类:

    [EditorBrowsable(EditorBrowsableState.Never)]
    public void Dispose()