You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

27 lines
1.0 KiB

using System;
namespace IPA.Utilities
{
/// <summary>
/// A class providing various extension methods.
/// </summary>
public static class Extensions
{
/// <summary>
/// Gets the default value for a given <see cref="Type"/>.
/// </summary>
/// <param name="type">the <see cref="Type"/> to get the default value for</param>
/// <returns>the default value of <paramref name="type"/></returns>
public static object GetDefault(this Type type)
{
return type.IsValueType ? Activator.CreateInstance(type) : null;
}
/// <summary>
/// Unwraps a <see cref="Nullable{T}"/> where T is <see cref="bool"/> such that if the value is null, it gives <see langword="false"/>.
/// </summary>
/// <param name="self">the bool? to unwrap</param>
/// <returns>the unwrapped value, or <see langword="false"/> if it was <see langword="null"/></returns>
public static bool Unwrap(this bool? self) => self != null && self.Value;
}
}