This repository has been archived on 2022-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
LyokoCMD/src/LyokoCMD.Sim/Extensions/ObjectExtensions.cs

34 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LyokoCMD
{
public static class ObjectExtensions
{
/// <summary>
/// Tenter de convertir un objet vers un type donné.
/// </summary>
/// <typeparam name="T">Type souhaité.</typeparam>
/// <param name="input">Objet à convertir</param>
/// <returns>Objet pouvant être casté, ou null.</returns>
public static Object TryConvertTo<T>(this Object obj)
{
if (obj is T) return (T)obj;
else return null;
}
/// <summary>
/// Détermine si un objet peut être casté vers un type donné.
/// </summary>
/// <typeparam name="T">Type vers lequel caster l'objet.</typeparam>
/// <param name="obj">Objet à caster.</param>
/// <returns>True si l'objet peut être casté.</returns>
public static bool CanCast<T>(this Object obj)
{
return obj.TryConvertTo<T>() != null;
}
}
}