From 08d99b63b96b8df210369037ba0168a66d6b9c78 Mon Sep 17 00:00:00 2001 From: Popeye Zhong Date: Mon, 1 Apr 2024 15:24:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20Parameters=20=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AF=B9=E7=B1=BB=E5=9E=8B=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E7=9A=84=E6=94=AF=E6=8C=81=E3=80=82=20:cow:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zongsoft.Core/src/Collections/Parameters.cs | 22 ++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Zongsoft.Core/src/Collections/Parameters.cs b/Zongsoft.Core/src/Collections/Parameters.cs index 3578bd0d..12d0c482 100644 --- a/Zongsoft.Core/src/Collections/Parameters.cs +++ b/Zongsoft.Core/src/Collections/Parameters.cs @@ -80,19 +80,27 @@ public void Clear() dictionary.Clear(); } - public bool Contains(string name) => _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.ContainsKey(name); + public readonly bool Contains(string name) => _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.ContainsKey(name); + public readonly object GetValue(string name) => _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.TryGetValue(name, out var value) ? value : null; + public readonly T GetValue(string name, T defaultValue) => _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.TryGetValue(name, out var value) ? + Common.Convert.ConvertValue(value) : defaultValue; - public bool TryGetValue(string name, out object value) + public readonly bool TryGetValue(string name, out object value) { - value = null; + value = default; return _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.TryGetValue(name, out value); } - public bool HasValue(string name) => _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.ContainsKey(name); - public bool HasValue(string name, out object value) + public readonly bool TryGetValue(string name, out T value) { - value = null; - return _owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.TryGetValue(name, out value); + if(_owner.IsAlive && name != null && _cache.TryGetValue(_owner, out var dictionary) && dictionary.TryGetValue(name, out var result)) + { + value = Common.Convert.ConvertValue(result); + return true; + } + + value = default; + return false; } public void SetValue(string name, object value)