码迷,mamicode.com
首页 > Windows程序 > 详细

C#泛型

时间:2018-10-26 16:29:12      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:class   color   其他   ogr   装箱   添加   派生   性能   需要   

using System.Collections;
using System.Collections.Generic;
using static System.Console;

//泛型 主要优点是性能 与c++模板相似 但c++在使用时需要其源代码
//而.NET泛型可在一种语言中定义,在任何其他.NET语言中使用

namespace lwm
{
    class Program
    {
        static void Main()
        {
            //装箱 拆箱 性能损失大
            var list = new ArrayList();
            list.Add(44);//可添加任意类型

            int i1 = (int)list[0];

            //泛型 类型安全
            var list1 = new List<int>();
            list1.Add(44);
            i1 = list1[0];
            foreach (int i in list1)
                WriteLine(i);

            LinkedListNode<int> list2 = new LinkedListNode<int>();


           ReadKey();

        }
        //自定义泛型类
        public class LinkedListNode<T>
            where T: struct//约束条件,可以没有
            //struct T必须是值类型 class 必须是引用类型
            //IFoo:必须实现接口IFoo 
            //Foo:必须派生自Foo 
            //new():T必须有一个默认构造函数 
            //T2:T必须派生自泛型T2
        {
            public LinkedListNode()
            {//default 将null赋予引用类型,将0赋予值类型
                Value = default(T);
            }
            public LinkedListNode(T value)
            {
                Value = value;
            }

            public T Value { get; private set; }
            public LinkedListNode<T> Next { get; internal set; }
            public LinkedListNode<T> Prev { get; internal set; }
        }
        //自定义泛型结构
        public struct st<T> { }

        //泛型方法
        void fun1<T>()
        {

        }
        //泛型成员方法
        public class MyClass
        {
            public void fun<T>()
            {
                
            }
        }
    }

}

 

C#泛型

标签:class   color   其他   ogr   装箱   添加   派生   性能   需要   

原文地址:https://www.cnblogs.com/xslwm/p/9856506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!