|
@@ -25,6 +25,22 @@ namespace Masuit.Tools
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdate<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that)
|
|
|
+ {
|
|
|
+ foreach (var item in that)
|
|
|
+ {
|
|
|
+ @this[item.Key] = item.Value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -57,6 +73,38 @@ namespace Masuit.Tools
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdateTo<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that)
|
|
|
+ {
|
|
|
+ foreach (var item in @this)
|
|
|
+ {
|
|
|
+ that[item.Key] = item.Value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdateTo<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that)
|
|
|
+ {
|
|
|
+ foreach (var item in @this)
|
|
|
+ {
|
|
|
+ that[item.Key] = item.Value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -81,6 +129,54 @@ namespace Masuit.Tools
|
|
|
return @this[key];
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, TKey key, TValue addValue, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.Add(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, TKey key, TValue addValue, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.TryAdd(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -105,6 +201,54 @@ namespace Masuit.Tools
|
|
|
return @this[key];
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static async Task<TValue> AddOrUpdateAsync<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, TKey key, TValue addValue, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.Add(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = await updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static async Task<TValue> AddOrUpdateAsync<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, TKey key, TValue addValue, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.TryAdd(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = await updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -129,6 +273,54 @@ namespace Masuit.Tools
|
|
|
return @this[key];
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValue">更新时的值</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, TKey key, TValue addValue, TValue updateValue)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.Add(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValue">添加时的值</param>
|
|
|
+ /// <param name="updateValue">更新时的值</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, TKey key, TValue addValue, TValue updateValue)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.TryAdd(key, addValue);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -146,6 +338,40 @@ namespace Masuit.Tools
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdate<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ foreach (var item in that)
|
|
|
+ {
|
|
|
+ AddOrUpdate(@this, item.Key, item.Value, updateValueFactory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdate<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ foreach (var item in that)
|
|
|
+ {
|
|
|
+ AddOrUpdate(@this, item.Key, item.Value, updateValueFactory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -160,6 +386,34 @@ namespace Masuit.Tools
|
|
|
return that.ForeachAsync(item => AddOrUpdateAsync(@this, item.Key, item.Value, updateValueFactory));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Task AddOrUpdateAsync<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ return that.ForeachAsync(item => AddOrUpdateAsync(@this, item.Key, item.Value, updateValueFactory));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Task AddOrUpdateAsync<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, IDictionary<TKey, TValue> that, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ return that.ForeachAsync(item => AddOrUpdateAsync(@this, item.Key, item.Value, updateValueFactory));
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -177,6 +431,40 @@ namespace Masuit.Tools
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdateTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, NullableDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ foreach (var item in @this)
|
|
|
+ {
|
|
|
+ AddOrUpdate(that, item.Key, item.Value, updateValueFactory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static void AddOrUpdateTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, NullableConcurrentDictionary<TKey, TValue> that, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ foreach (var item in @this)
|
|
|
+ {
|
|
|
+ AddOrUpdate(that, item.Key, item.Value, updateValueFactory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -191,6 +479,34 @@ namespace Masuit.Tools
|
|
|
return @this.ForeachAsync(item => AddOrUpdateAsync(that, item.Key, item.Value, updateValueFactory));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Task AddOrUpdateAsyncTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, NullableDictionary<TKey, TValue> that, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ return @this.ForeachAsync(item => AddOrUpdateAsync(that, item.Key, item.Value, updateValueFactory));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="that">另一个字典集</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static Task AddOrUpdateAsyncTo<TKey, TValue>(this IDictionary<TKey, TValue> @this, NullableConcurrentDictionary<TKey, TValue> that, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ return @this.ForeachAsync(item => AddOrUpdateAsync(that, item.Key, item.Value, updateValueFactory));
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -215,6 +531,54 @@ namespace Masuit.Tools
|
|
|
return @this[key];
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValueFactory">添加时的操作</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, TKey key, Func<TKey, TValue> addValueFactory, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.Add(key, addValueFactory(key));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValueFactory">添加时的操作</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static TValue AddOrUpdate<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, TKey key, Func<TKey, TValue> addValueFactory, Func<TKey, TValue, TValue> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.TryAdd(key, addValueFactory(key));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 添加或更新键值对
|
|
|
/// </summary>
|
|
@@ -239,6 +603,54 @@ namespace Masuit.Tools
|
|
|
return @this[key];
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValueFactory">添加时的操作</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static async Task<TValue> AddOrUpdateAsync<TKey, TValue>(this NullableDictionary<TKey, TValue> @this, TKey key, Func<TKey, Task<TValue>> addValueFactory, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.Add(key, await addValueFactory(key));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = await updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加或更新键值对
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="TKey"></typeparam>
|
|
|
+ /// <typeparam name="TValue"></typeparam>
|
|
|
+ /// <param name="this"></param>
|
|
|
+ /// <param name="key">键</param>
|
|
|
+ /// <param name="addValueFactory">添加时的操作</param>
|
|
|
+ /// <param name="updateValueFactory">更新时的操作</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static async Task<TValue> AddOrUpdateAsync<TKey, TValue>(this NullableConcurrentDictionary<TKey, TValue> @this, TKey key, Func<TKey, Task<TValue>> addValueFactory, Func<TKey, TValue, Task<TValue>> updateValueFactory)
|
|
|
+ {
|
|
|
+ if ([email protected](key))
|
|
|
+ {
|
|
|
+ @this.TryAdd(key, await addValueFactory(key));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ @this[key] = await updateValueFactory(key, @this[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return @this[key];
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 获取或添加
|
|
|
/// </summary>
|