有没有任何方法可以在不重载函数的情况下使用MongoDB ObjectId作为C#中的可选参数



通常情况下,您不能将ObjectId作为C#中的可选参数,因为ObjectId是一个没有"设计时间常数"默认值的结构。

ObjectId.Empty是一个执行代码的属性,由于同样的原因,不允许使用默认值(ObjectId)。

有人能解决如何创建一个工作设计时间常数的问题吗?(这不是真正的方法,而是一个例子)

MyObject LoadOrCreate(ObjectId id = somedefaultvalue)
{}

如果我在上面的例子中尝试这个,它不会编译吗?

我当然可以使用该方法的单独重载,但我宁愿使用选项而不是重载。

正如我在对第一个答案的评论中所指出的,可以为null是一个选项,但我不喜欢使用它,因为我不得不将其转换为不可以为null。

因此,我仍在寻找一些"更好"的解决方案;)

是否将其设为null并默认为null?

试试这个:

public static void SomeMethod(ObjectId id = default(ObjectId))
{
    // do something
}

相关内容

  • 没有找到相关文章

最新更新