private void GuessType(object param, IEnumerable vals, object type) { if (param == null) { throw new ArgumentNullException("param", "Type can not be guessed for a null value."); // Use 'nameof' expression } if (type == null) { throw new ArgumentNullException(string.Format("Empty type '{0}'", type.GetType())); // Use string interpolation + possible NRE } if (vals == null) { throw new ArgumentNullException("vals"); // Use 'nameof' expression } if (!(param.ToString() == "check")) // Simplify negative equality expression { } if (type == typeof(int)) // Possible unintended reference comparison { // Source: http://stackoverflow.com/questions/9234009/c-sharp-type-comparison-type-equals-vs-operator Type type = new TypeDelegator(typeof(int)); // Merge variables Console.WriteLine(type.Equals(typeof(int))); // Check for reference equality instead } bool serializable = (type != null && type is Abstraction); // Merge sequential checks }
public T To <T>(object param) { var out_type = new TypeDelegator(typeof(T)); if (out_type.Equals(typeof(int))) { return((T)(int.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(long))) { return((T)(long.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(double))) { return((T)(double.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(decimal))) { return((T)(decimal.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(float))) { return((T)(float.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(Version))) { return((T)(Version.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(DateTime))) { return((T)(DateTime.Parse(param.ToString()) as object)); } if (out_type.Equals(typeof(string))) { return((T)(param as object)); } else { return((T)param); } }