Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ValidateSwitchCaseType()

static void System.Linq.Expressions.Expression< TDelegate >.ValidateSwitchCaseType ( Expression< TDelegate > @ case,
bool customType,
Type resultType,
string parameterName )
inlinestaticprivateinherited

Definition at line 4842 of file Expression.cs.

4843 {
4844 if (customType)
4845 {
4846 if (resultType != typeof(void) && !TypeUtils.AreReferenceAssignable(resultType, @case.Type))
4847 {
4848 throw Error.ArgumentTypesMustMatch(parameterName);
4849 }
4850 }
4851 else if (!TypeUtils.AreEquivalent(resultType, @case.Type))
4852 {
4853 throw Error.AllCaseBodiesMustHaveSameType(parameterName);
4854 }
4855 }
static bool AreEquivalent(Type t1, Type t2)
Definition TypeUtils.cs:664
static bool AreReferenceAssignable(Type dest, Type src)
Definition TypeUtils.cs:673

References System.Linq.Expressions.Error.AllCaseBodiesMustHaveSameType(), System.Dynamic.Utils.TypeUtils.AreEquivalent(), System.Dynamic.Utils.TypeUtils.AreReferenceAssignable(), and System.Linq.Expressions.Error.ArgumentTypesMustMatch().

Referenced by System.Linq.Expressions.Expression< TDelegate >.Switch().