C# 关于泛型

泛型类需要返回null时,可使用default(T)

泛型的常见限制

        /// <summary>
        /// 示例中class,struct 限制必须在所有限制之前,new()必须在所有限制之后,T3必须显示的实现T1
        /// IAtt为某个自建接口,写某个类也一样
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="T3"></typeparam>
        /// <param name="t2"></param>
        public T1 Genericity<T1, T2, T3>(T2 t2) where T1 : class, new() where T2 : IAtt, new() where T3 : struct, T1
        {
            try
            {
                //某些操作
                return new T1();
            }
            catch (Exception)
            {
                //异常时
                return default(T1);//返回T1类型的默认值,比如int会返回0,引用类型会返回null
            }
        }

 向winform中传递泛型:

修改窗体代码文件*.cs

public partial class FormName<T> : Form

partial说明此类还有一半在另外的cs文件中,正是系统替你写好的*.designer.cs

 同时修改*.Designer.cs

partial class FormName<T>

此时泛型T可以像声明类一样传入泛型

原文地址:https://www.cnblogs.com/-hwh/p/13388010.html