Browse Source

Class<T> 暂时去除隐式转换,增加扩展方法 object.Class() 用于将 Value 转换为 Class<T>。

dev
王厅 2 months ago
parent
commit
2e190eb305
  1. 29
      Apewer/Class.cs
  2. 2
      Apewer/ClockUtility.cs
  3. 7
      Apewer/_Extensions.cs

29
Apewer/Class.cs

@ -123,26 +123,25 @@ namespace Apewer
{ {
if (instance == null) return false; if (instance == null) return false;
var boolean = instance as Class<bool>; // var boolean = instance as Class<bool>;
if (boolean != null) return boolean.Value; // if (boolean != null) return boolean.Value;
var text = instance as Class<string>; // var text = instance as Class<string>;
if (text != null) return !string.IsNullOrEmpty(text.Value); // if (text != null) return !string.IsNullOrEmpty(text.Value);
return instance != null; return true;
} }
/// <summary>从 <see cref="Class{T}"/> 到 T 的隐式转换。</summary> // /// <summary>从 <see cref="Class{T}"/> 到 T 的隐式转换。</summary>
public static implicit operator T(Class<T> instance) // public static implicit operator T(Class<T> instance)
{ // {
if (instance == null) return default(T); // if (instance == null) return default(T);
// if (typeof(T).Equals(typeof(bool))) return instance.Value;
if (typeof(T).Equals(typeof(bool))) return instance.Value; // return instance.Value;
return instance.Value; // }
}
/// <summary>从 T 到 <see cref="Class{T}"/> 的隐式转换。</summary> // /// <summary>从 T 到 <see cref="Class{T}"/> 的隐式转换。</summary>
public static implicit operator Class<T>(T value) => new Class<T>(value); // public static implicit operator Class<T>(T value) => new Class<T>(value);
#endregion #endregion

2
Apewer/ClockUtility.cs

@ -16,7 +16,7 @@ namespace Apewer
/// <summary>尝试转换内容为 DateTime 实例。</summary> /// <summary>尝试转换内容为 DateTime 实例。</summary>
public static Class<DateTime> DateTime(object value) public static Class<DateTime> DateTime(object value)
{ {
if (value is DateTime dt) return dt; if (value is DateTime dt) return new Class<DateTime>(dt);
if (value.IsNull()) return null; if (value.IsNull()) return null;
try try

7
Apewer/_Extensions.cs

@ -29,6 +29,13 @@ public static class Extensions
/// <summary>是默认值。</summary> /// <summary>是默认值。</summary>
public static bool IsDefault(this object @this) => RuntimeUtility.IsDefault(@this); public static bool IsDefault(this object @this) => RuntimeUtility.IsDefault(@this);
#region Class
/// <summary>用 <see cref="Apewer.Class{T}"/> 装箱。</summary>
public static Class<T> Class<T>(this T value) => new Class<T>(value);
#endregion
#region Class Utility #region Class Utility
/// <summary>调用 Get 方法。</summary> /// <summary>调用 Get 方法。</summary>

Loading…
Cancel
Save