在运行时知道类型变量

时间:2013-02-14 21:10:42

标签: c#

我想确定参数变量是Guid类型。

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

我想这是一个非常基本的问题,但我被困在这里。

由于

3 个答案:

答案 0 :(得分:4)

在这种情况下,传入的值不可能是 GUID。

GUID structure是一种值类型 - 它不能被继承。这意味着只有编译器才会接受的类型作为此方法的参数是GUID

答案 1 :(得分:2)

总会如此。编译器确保它。

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

正如其他人所指出的,Guidstruct,不能包含子类型。

答案 2 :(得分:0)

正如其他人所说,在这个特定的场景中你并不需要,因为编译会确保它。

但是,一般情况下,您需要使用GetType()typeof进行此项检查。

if (id.GetType() != typeof(System.Guid))
{
    // Print Error
}