diff --git a/Engine.Core/Config/BasicConfiguration.cs b/Engine.Core/Config/BasicConfiguration.cs index 9e8d2f1..8f833c7 100644 --- a/Engine.Core/Config/BasicConfiguration.cs +++ b/Engine.Core/Config/BasicConfiguration.cs @@ -12,17 +12,18 @@ public class BasicConfiguration : IConfiguration public IReadOnlyDictionary Values => values; - public T? Get(string key, T? defaultValue = default) + public T Get(string key, T defaultValue) => Get(key) ?? defaultValue; + public T? Get(string key) { if (!values.TryGetValue(key, out object? value)) - return defaultValue; + return default; if (value is T castedObject) return castedObject; try { return (T?)System.Convert.ChangeType(value, typeof(T)); } catch { } - return defaultValue; + return default; } public object? Get(string key) diff --git a/Engine.Core/Config/IConfiguration.cs b/Engine.Core/Config/IConfiguration.cs index 0bd9dfe..15abbb9 100644 --- a/Engine.Core/Config/IConfiguration.cs +++ b/Engine.Core/Config/IConfiguration.cs @@ -15,7 +15,8 @@ public interface IConfiguration bool Has(string key); object? Get(string key); - T? Get(string key, T? defaultValue = default); + T Get(string key, T defaultValue); + T? Get(string key); void Set(string key, T value); void Remove(string key);