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

它总是会的。编译器确保它。

将参数写入 asGuid id意味着只能将类型的实例Guid或 can 的子类型Guid传递给方法。任何传递任何其他类型参数的尝试都将导致编译器错误或运行时异常(如果您尝试通过反射调用该方法)。

正如其他人指出的那样,Guidis astruct并且不能有子类型。

于 2013-02-14T21:11:35.090 回答
0

正如其他人所说,在这种特定情况下您实际上并不需要,因为编译将确保它。

但是,一般情况下,您会希望使用GetType()typeof执行此检查。

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