小编Gab*_*ik1的帖子

.NET 使用可为空引用类型实现 IEnumerator

自从C# 8.0 发布以来,我真的很享受可空引用类型的“无效安全” 。然而,在调整我的库以支持新功能时,我偶然发现了一个“问题”,我真的在任何地方都找不到答案。我看过微软的发行说明和 .NET 源代码,但没有运气。

TL;DR:问题本质上是一个IEnumerator<T>Current属性是否应该被声明为可以为空的引用类型。

假设以下实现IEnumerator<T>

public class WebSocketClientEnumerator<TWebSocketClient> : IEnumerator<TWebSocketClient> where TWebSocketClient : WebSocketClient
{
    private WebSocketRoom<TWebSocketClient> room;
    private int curIndex;
    private TWebSocketClient? curCli;

    public WebSocketClientEnumerator(WebSocketRoom<TWebSocketClient> room)
    {
        this.room = room;
        curIndex = -1;
        curCli = default(TWebSocketClient);
    }

    public bool MoveNext()
    {
        if (++curIndex >= room.Count)
        {
            return false;
        }
        else
        {
            curCli = room[curIndex];
        }

        return true;
    }

    public void Reset() { curIndex = -1; } …
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerator nullable-reference-types

5
推荐指数
1
解决办法
296
查看次数

MongoDB minidump 文件路径错误

我最近卸载了 MongoDB 3.2 来安装 MongoDB 3.6。从那以后,每次我尝试启动 mongod 时,都会收到以下错误:failed to open minidump file C:\Program Files\MongoDB\Server\3.2018-02-18T17-02-35.mdmp : Access is denied.

我什至不太确定它为什么这么说,Access is denied因为正如我所提到的,我卸载了 MongoDB 3.2,因此 server/3.2/ 目录不再存在。那么有没有办法改变 MongoDB 查找这个文件的位置?

另外,请注意路径在 3.2 之后似乎缺少斜杠......它确实在我的终端中出现,这不是错字,我不确定我应该怎么想。

我正在运行 Windows 10。我想指出的是,我确实使用了 MongoDB“向导”来卸载 MongoDB 3.2 版。


编辑:我决定擦除我所有的数据库数据文件夹并将数据库种子放回,现在它似乎工作正常,但如果可能的话,我会保持问题的开放,直到我们找到问题的明确答案

configuration minidump path mongodb

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