== Why is this an issue? Calling `GetType` on a `Type` variable will always return the `System.Type` representation, which is equivalent to `typeof(System.Type)`. This also applies to passing a `Type` argument to `IsInstanceOfType` which always returns `false`. In both cases, the results are entirely predictable and should be avoided. === Exceptions Calling `GetType` on `System.Type` is considered compliant to get an instance of `System.RuntimeType`, as demonstrated in the following example: [source,csharp] ---- typeof(Type).GetType(); // Can be used by convention to get an instance of 'System.RuntimeType' ---- == How to fix it Make sure the usage of `GetType` or `IsInstanceOfType` is invoked with the correct variable or argument type. === Code examples ==== Noncompliant code example [source,csharp,diff-id=1,diff-type=noncompliant] ---- void ExamineSystemType(string str) { Type stringType = str.GetType(); Type runtimeType = stringType.GetType(); // Noncompliant if (stringType.IsInstanceOfType(typeof(string))) // Noncompliant; will always return false { /* ... */ } } ---- ==== Compliant solution [source,csharp,diff-id=1,diff-type=compliant] ---- void ExamineSystemType(string str) { Type stringType = str.GetType(); if (stringType.IsInstanceOfType(str)) // Compliant { /* ... */ } } ---- == Resources === Documentation * https://learn.microsoft.com/en-us/dotnet/api/system.type["Type" class] * https://learn.microsoft.com/en-us/dotnet/api/system.object.gettype["GetType" Method] * https://learn.microsoft.com/en-us/dotnet/api/system.type.isinstanceoftype["IsInstanceOfType" Method] === Articles & blog posts * https://stackoverflow.com/a/5737947[Difference between "System.Type" and "System.RuntimeType"] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message * Remove this use of "GetType" on a "System.Type". * Pass an argument that is not a "System.Type" or use "IsAssignableFrom". * Remove the "GetType" call, it's suspicious in an "IsInstanceOfType" call. === Highlighting * `.GetType()` * argument to `IsInstanceOfType` ''' == Comments And Links (visible only on this page) === on 8 Dec 2015, 09:00:32 Tamas Vajk wrote: \[~ann.campbell.2] I made some changes (description/title), could you run through them? Thanks endif::env-github,rspecator-view[]