相关疑难解决方法(0)

C#接口.隐式实现与显式实现

在C#中隐式显式实现接口有什么区别?

什么时候应该使用隐式?什么时候应该使用显式?

是否有任何利弊和/或缺点?


Microsoft的官方指南(来自第一版框架设计指南)声明不建议使用显式实现,因为它会给代码带来意外行为.

我认为这个指南在IoC之前的时候是非常有效的,当你没有作为接口传递时.

任何人都可以触及这方面吗?

.net c# interface

615
推荐指数
10
解决办法
14万
查看次数

IDispose对象可以没有可用的Dispose方法

我在一个项目和类中使用FileHelpersMultiRecordEngine

public sealed class MultiRecordEngine
    : EventEngineBase<object>, IEnumerable, IDisposable
Run Code Online (Sandbox Code Playgroud)

这个类实现了IDisposable,但是没有公共的Dispose方法......

MultiRecordEngine eng = null;
eng.Dispose(); // <---- Results in compilation error
Run Code Online (Sandbox Code Playgroud)

在GitHub上检查这个类代码我可以看到这里明确实现的方法,第913行:

void IDisposable.Dispose()
{
    Close();
    GC.SuppressFinalize(this);
}
Run Code Online (Sandbox Code Playgroud)

那么...... 为什么我不能调用这个方法呢?这是有意的,如果是这样,这是一个好的做法,在什么情况下?

c# filehelpers idisposable

2
推荐指数
1
解决办法
173
查看次数

标签 统计

c# ×2

.net ×1

filehelpers ×1

idisposable ×1

interface ×1