コード例 #1
0
 public static Expression CastTo(this Expression expresion, DebugType castTo)
 {
     // No need to cast
     if (expresion.GetStaticType() == castTo)
     {
         return(expresion);
     }
     if (expresion is PrimitiveExpression)
     {
         object val = ((PrimitiveExpression)expresion).Value;
         if (val != null && val.GetType().FullName == castTo.FullName)
         {
             return(expresion);
         }
     }
     return(new CastExpression(castTo.GetTypeReference(), expresion.Parenthesize(), CastType.Cast));
 }