public static bool ReturnNonDefault <T>(this T inValue, [MaybeNull] out T outValue, Func <T>?getNonDefaultIfDefault = null) => TeronisTools.ReturnNonDefault(inValue, out outValue, getNonDefaultIfDefault);
public static bool HasInterface <T>(this object obj, [MaybeNull] out T typedObj) => obj.HasInterface <T>() ? TeronisTools.ReturnValue((T)obj, out typedObj, true) : TeronisTools.ReturnValue(default, out typedObj, false);
public static V ReturnValue <I, V>(this I inValue, [MaybeNull] out I outInValue, GetInputDelegate <I, V> getValue) => TeronisTools.ReturnValue(inValue, out outInValue, getValue);
public static V ReturnValue <I, V>(this I inValue, GetInputDelegate <I, V> getValue) => TeronisTools.ReturnValue(inValue, getValue);
public static async Task <I> ReturnInValue <I>(this I inValue, Task task) => await TeronisTools.ReturnInValue(inValue, task);
public static V ReturnValue <I, V>(this I inValue, [MaybeNull] out I outInValue, Func <V> getValue) => TeronisTools.ReturnValue(inValue, out outInValue, getValue);
public static I ReturnInValue <I>(this I inValue, Action doSomething) => TeronisTools.ReturnInValue(inValue, doSomething);
public static I ReturnInValue <I>(this I inValue, ReplaceValueDelegate <I, I> modifyInValue) => TeronisTools.ReturnInValue(inValue, modifyInValue);
public static I ReturnInValue <I>(this I inValue, MutateValue <I> mutateInValue) => TeronisTools.ReturnInValue(inValue, mutateInValue);
public static I ReturnInValue <I>(this I inValue, [MaybeNull] out I outInValue) => TeronisTools.ReturnInValue(inValue, out outInValue);
/// <summary> /// Returns true if not an exception is thrown before. /// </summary> public override bool CanConvert(Type objectType) => TeronisTools.ReturnInValue(true, () => getCollectionType(objectType));