1

パラメータ変数がGuid型であることを確認したいと思います。

public ActionResult Edit(Guid id)
{
   // if id != Guid print error
}

かなり基本的な質問だと思いますが、ここで立ち往生しています。

ありがとう

4

3 に答える 3

4

この場合、渡された値がGUIDではない可能性はありません。

GUID構造体は値型であり、継承することはできません。これは、コンパイラがこのメソッドの引数として受け入れるタイプのみがであるということを意味しGUIDます。

于 2013-02-14T21:11:44.680 に答える
2

いつもそうなるでしょう。コンパイラはそれを保証します。

パラメータをとして記述Guid idすることは、タイプのインスタンスGuidまたはのサブタイプのみGuidをメソッドに渡すことができることを意味します。他のタイプのパラメーターを渡そうとすると、コンパイラーエラーまたは実行時例外が発生します(リフレクションを介してメソッドを呼び出そうとした場合)。

他の人が指摘しているように、Guidはastructであり、サブタイプを持つことはできません。

于 2013-02-14T21:11:35.090 に答える
0

他の人が述べているように、この特定のシナリオでは、コンパイルによって保証されるため、実際には必要ありません。

ただし、一般的には、このチェックを使用GetType()して実行する必要があります。typeof

if (id.GetType() != typeof(System.Guid))
{
    // Print Error
}
于 2013-02-14T21:17:41.803 に答える