2

ObjectId は「設計時定数」のデフォルト値を持たない構造体であるため、通常、C# では ObjectId をオプションの引数として使用することはできません。

ObjectId.Empty はコードを実行するプロパティであり、default(ObjectId) は同じ理由で許可されていません。

次のステートメントが機能するように、作業設計時定数を作成する方法について誰かが解決策を持っていますか? (これは実際の方法ではなく、例です)

MyObject LoadOrCreate(ObjectId id = somedefaultvalue)
{}

上記の例でこれを試してみると、コンパイルされませんか?

メソッドの別のオーバーロードを使用することはできますが、オーバーロードではなくオプションを使用します。

最初の回答へのコメントで述べたように、nullable はオプションですが、null 不可にキャストバックする必要があるため、使用しないことを好みます。

だから私はまだ「より良い」解決策を探しています;)

4

2 に答える 2

4

Nullableにし、デフォルトでnullにしますか?

于 2012-09-04T07:06:49.703 に答える
4

これを試して:

public static void SomeMethod(ObjectId id = default(ObjectId))
{
    // do something
}
于 2012-09-06T03:07:17.103 に答える