泛型类(泛型方法)的学习

//泛型类使用前 必须先定义 和普通类一样
// 数值类型Struct dynamic(动态更新)
//格式: 类名

/// <summary>
/// 自定义泛型类
/// </summary>
/// <typeparam name="T"></typeparam>
public class cypList<T>
{
    private List<T> values = new List<T>();
    /// <summary>
    /// 索引器 集合对象必要手段   一个对象通过索引去访问元素,表明对象提供了索引器
    /// </summary>
    /// <param name="index"></param>
    /// <returns></returns>
    public T this[int index]
    {
        get { return values[index]; }
        set { values[index] = value; }
    }

    /// <summary>
    /// 获取集合长度
    /// </summary>
    public int counts { get { return values.Count; } }

    /// <summary>
    /// 获取当前时间
    /// </summary>
    public string currentTime
    {
        get { return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); }
    }

    /// <summary>
    ///集合添加元素
    /// </summary>
    /// <param name="item"></param>
    public void Add(T item)
    {
        values.Add(item);
    }
    /// <summary>
    /// 集合添加元素集合
    /// </summary>
    /// <param name="itmes"></param>
    public void AddRange(T[] itmes)
    {
        values.AddRange(itmes);
    }
    /// <summary>
    /// 集合移除元素
    /// </summary>
    /// <param name="item"></param>
    public void Remove(T item)
    {
        if (values.Contains(item)) values.Remove(item);
    }
    /// <summary>
    /// 计算元素之和
    /// </summary>
    /// <typeparam name="T1"></typeparam>
    /// <returns></returns>
    public T1 Sum<T1>() 
    {
        dynamic sum=0;
        foreach (var item in values)
        {
            sum +=item;
                
        }
        return sum;
    }
    /// <summary>
    /// 计算元素平均数
    /// </summary>
    /// <typeparam name="T1"></typeparam>
    /// <returns></returns>
    public T1 AVG<T1>()
    {
        dynamic sum = 0;
        foreach (var item in values)
        {
            sum += item;

        }
        return sum / values.Count;
    } 
    /// <summary>
    /// 计算数的平方
    /// </summary>
    /// <typeparam name="T1"></typeparam>
    /// <typeparam name="T2"></typeparam>
    /// <param name="NUM"></param>
    /// <returns></returns>
    public T1 Square<T1, T2>(T2 NUM) where T1 : struct, T2
    {
        dynamic a = NUM;
        return a*a;
    }


}
posted @ 2025-09-02 13:24  $虫虫$  阅读(3)  评论(0)    收藏  举报