Object - IsAssignableFrom
An object extension method that query if '@this' is assignable from.
public static void Main() { var stringObject = (object) "FizzBuzz"; // C# Extension Method: Object - IsAssignableFrom bool result1 = stringObject.IsAssignableFrom(typeof (string)); // return true; bool result2 = stringObject.IsAssignableFrom<string>(); // return true; bool result3 = stringObject.IsAssignableFrom<object>(); // return false; bool result4 = stringObject.IsAssignableFrom<int>(); // return false; Console.WriteLine("IsAssignableFrom(typeof (string)): {0}", result1); Console.WriteLine("IsAssignableFrom<string>(): {0}", result2); Console.WriteLine("IsAssignableFrom<object>(): {0}", result3); Console.WriteLine("IsAssignableFrom<int>(): {0}", result4); }
View Source
using System; public static partial class Extensions { /// <summary> /// An object extension method that query if '@this' is assignable from. /// </summary> /// <typeparam name="T">Generic type parameter.</typeparam> /// <param name="this">The @this to act on.</param> /// <returns>true if assignable from, false if not.</returns> public static bool IsAssignableFrom<T>(this object @this) { Type type = @this.GetType(); return type.IsAssignableFrom(typeof (T)); } /// <summary> /// An object extension method that query if '@this' is assignable from. /// </summary> /// <param name="this">The @this to act on.</param> /// <param name="targetType">Type of the target.</param> /// <returns>true if assignable from, false if not.</returns> public static bool IsAssignableFrom(this object @this, Type targetType) { Type type = @this.GetType(); return type.IsAssignableFrom(targetType); } }