//http://sb2extensions.codeplex.com/
//Apache License 2.0 (Apache)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sb2.Extensions
{
public static class NullableExtensions
{
/// <summary>
/// Converts String to Any Other Type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="input">The input.</param>
/// <returns></returns>
public static T? ConvertTo<T>(this string input) where T : struct
{
T? ret = null;
if (!string.IsNullOrEmpty(input))
{
ret = (T)Convert.ChangeType(input, typeof(T));
}
return ret;
}
/// <summary>
/// Converts String to Any Other Type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="input">The input.</param>
/// <param name="provider">The provider.</param>
/// <returns></returns>
public static T? ConvertTo<T>(this string input, IFormatProvider provider) where T : struct
{
T? ret = null;
if (!string.IsNullOrEmpty(input))
{
ret = (T)Convert.ChangeType(input, typeof(T), provider);
}
return ret;
}
public static string ToString(this char? input)
{
return input.HasValue ? input.Value.ToString() : String.Empty;
}
public static char? ToNullableChar(this string input)
{
if (input.Trim().Length == 0)
return new char?();
else if (input.Trim().Length > 1)
throw new ArgumentException("Cannot convert string(" + input.Trim().Length + ") to char?");
else
return input[0];
}
}
}
|