网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System.Text;

namespace Dpz.Core.Service.ObjectStorage.VideoHandle;

/// <summary>
/// 视频处理参数
/// </summary>
public class AvOpts : List<OptionType>
{
    private const int MaxCount = 10;

    public AvOpts() { }

    public AvOpts(ICollection<OptionType> items)
    {
        AddRange(items);
    }

    public new void Add(OptionType item)
    {
        if (Count >= MaxCount)
        {
            throw new InvalidOperationException("The maximum number of items has been reached.");
        }
        base.Add(item);
    }

    public void AddRange(ICollection<OptionType> items)
    {
        var c = Math.Max(MaxCount - Count, 0);
        if (c > 0)
        {
            base.AddRange(items.Take(c));
        }
    }

    public override string ToString()
    {
        var sb = new StringBuilder();
        foreach (var item in this)
        {
            var value = item.Value switch
            {
                bool bv => bv.ToString().ToLower(),
                null => "",
                _ => item.Value.ToString()
            };
            sb.Append($"/{item.Name}/{value}");
        }
        return sb.ToString();
    }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

这段代码定义了一个名为 AvOpts 的类,主要用于管理视频处理参数。它继承自 List<OptionType>,意味着 AvOpts 是一个特定类型的列表,专门用于存储 OptionType 对象。以下是代码的主要功能和结构的详细解释:

1. 类的定义

  • AvOpts 类用于存储视频处理的参数选项。
  • 它有一个常量 MaxCount,表示该类实例中最多可以包含的 OptionType 对象的数量(最大为 10)。

2. 构造函数

  • AvOpts():无参数的构造函数,初始化一个空的 AvOpts 实例。
  • AvOpts(ICollection<OptionType> items):接受一个 ICollection<OptionType> 类型的参数,并将其添加到 AvOpts 实例中。

3. 添加元素

  • Add(OptionType item):重写了 ListAdd 方法。在添加新项之前,它会检查当前列表的数量是否已达到最大限制。如果已达到最大数量,则抛出 InvalidOperationException 异常。

  • AddRange(ICollection<OptionType> items):此方法允许批量添加多个 OptionType 对象。它首先计算出可以添加的最大数量(即 MaxCount 减去当前数量),然后将最多 c 个项添加到列表中。

4. 转换为字符串

  • ToString():重写了 ToString 方法,用于将 AvOpts 实例转换为字符串。它遍历列表中的每个 OptionType 对象,并根据其 Value 属性的类型生成相应的字符串表示:

    • 如果 Value 是布尔值,则转换为小写字符串(truefalse)。
    • 如果 Valuenull,则返回空字符串。
    • 对于其他类型,调用 ToString() 方法获取其字符串表示。

    最终,所有的参数以特定格式(/{Name}/{Value})连接在一起,形成一个完整的字符串。

总结

AvOpts 类提供了一种结构化的方式来管理视频处理的参数选项,限制了参数的数量,并提供了方便的字符串表示方法,适合在视频处理相关的应用中使用。

loading