/// <summary> /// Initialisiert einen neues <see cref="ICsvTypeConverter"/>-Objekt für den angegebenen Datentyp. /// </summary> /// <param name="type">Der Datentyp, den der <see cref="ICsvTypeConverter"/> konvertiert.</param> /// <param name="nullable">Wenn <c>true</c>, wird ein <see cref="ICsvTypeConverter"/>-Objekt erstellt, das <c>null</c> als Eingabe akzeptiert /// und auch zurückzugeben vermag (<see cref="Nullable{T}"/>).</param> /// <param name="maybeDBNull">Wenn <c>true</c>, wird <see cref="DBNull.Value">DBNull.Value</see> als Eingabe akzeptiert und bildet auch den /// Rückgabewert von <see cref="ICsvTypeConverter.FallbackValue"/>.</param> /// <param name="formatProvider">Ein <see cref="IFormatProvider"/>-Objekt, das kulturspezifische Formatierungsinformationen /// bereitstellt, oder <c>null</c> für <see cref="CultureInfo.InvariantCulture"/>.</param> /// <param name="throwOnParseErrors">Wenn <c>true</c>, wirft die Methode <see cref="ICsvTypeConverter.Parse(string)"/> des erzeugten /// <see cref="ICsvTypeConverter"/>-Objekts eine Ausnahme, wenn das Parsen /// misslingt, /// anderenfalls gibt sie in diesem Fall <see cref="ICsvTypeConverter.FallbackValue"/> zurück.</param> /// <returns>Ein <see cref="ICsvTypeConverter"/>-Objekt zur Umwandlung des gewünschten Datentyps.</returns> /// /// <exception cref="ArgumentOutOfRangeException"><paramref name="type"/> ist keiner der definierten Werte der /// <see cref="CsvTypeCode"/>-Enum.</exception> public static ICsvTypeConverter CreateConverter( CsvTypeCode type, bool nullable = false, bool maybeDBNull = false, IFormatProvider?formatProvider = null, bool throwOnParseErrors = false) => type switch {
public void CreateHexConverterTest2( CsvTypeCode typeCode, bool nullable, bool throwOnParseErrors, Type converterType) { ICsvTypeConverter conv = CsvConverterFactory.CreateHexConverter(typeCode, nullable, true, throwOnParseErrors); Assert.AreEqual(converterType, conv.Type); Assert.IsTrue(Convert.IsDBNull(conv.FallbackValue)); Assert.AreEqual(throwOnParseErrors, conv.ThrowsOnParseErrors); }
public void CreateConverterTest2( CsvTypeCode typeCode, bool nullable, bool throwOnParseErrors, Type converterType, object?fallBackValue) { ICsvTypeConverter conv = CsvConverterFactory.CreateConverter(typeCode, nullable, false, throwOnParseErrors: throwOnParseErrors); Assert.AreEqual(converterType, conv.Type); Assert.AreEqual(fallBackValue, conv.FallbackValue); Assert.AreEqual(throwOnParseErrors, conv.ThrowsOnParseErrors); }
public void RoundtripTest2() { CsvTypeCode val = CsvTypeCode.DateTimeOffset; ICsvTypeConverter conv = CsvConverterFactory.CreateEnumConverter <CsvTypeCode>("F"); string?s = conv.ConvertToString(val); Assert.IsNotNull(s); var val2 = (CsvTypeCode?)conv.Parse(s); Assert.AreEqual(val, val2); }
public void RoundtripTest6() { CsvTypeCode val = CsvTypeCode.DateTimeOffset; ICsvTypeConverter conv = CsvConverterFactory.CreateEnumConverter <CsvTypeCode>("F", ignoreCase: false, throwOnParseErrors: true); string?s = conv.ConvertToString(val); Assert.IsNotNull(s); s = s !.ToUpperInvariant(); _ = (CsvTypeCode?)conv.Parse(s); }
public void RoundtripTest3() { CsvTypeCode val = CsvTypeCode.DateTimeOffset; ICsvTypeConverter conv = CsvConverterFactory.CreateEnumConverter <CsvTypeCode>(ignoreCase: true); string?s = conv.ConvertToString(val); Assert.IsNotNull(s); s = s !.ToUpperInvariant(); var val2 = (CsvTypeCode?)conv.Parse(s); Assert.AreEqual(val, val2); }