惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
V2EX - 技术
V2EX - 技术
Jina AI
Jina AI
有赞技术团队
有赞技术团队
美团技术团队
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
人人都是产品经理
人人都是产品经理
Security Latest
Security Latest
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
罗磊的独立博客
J
Java Code Geeks
博客园 - Franky
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
量子位
T
Threatpost
T
Tailwind CSS Blog
V
Visual Studio Blog
C
Cisco Blogs
雷峰网
雷峰网
博客园 - 【当耐特】
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
H
Heimdal Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 聂微东
爱范儿
爱范儿
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Threat Research - Cisco Blogs
T
Troy Hunt's Blog
H
Hacker News: Front Page
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

博客园 - 潘胜国

Emgu学习之(一)----Emgu简介 .NET 调用c++库注意事项 网站预编译命令说明(aspnet_compiler) VS2005即时窗口 DataSet主副表关系应注意的问题 通用验证脚本 SQL SERVER小Tips AG_E_RUNTIME_METHOD : CreateFromXaml错误的及解决 [转载]Converting a bitmap to a byte array 调试web服务器无法启动 IE 7 BETA 3安装 什么是爱情【转载】 取Assembly中的资源 利用IIS压缩文件 Page常用方法 IFame的另一种表现 自动提交问题,不知道这算不算是MS的一个BUG Ajax实现两级下拉框连动的应用 for和foreach的执行效率的问题之新发现
C# 2.0泛型初试
潘胜国 · 2005-10-31 · via 博客园 - 潘胜国

using System.Collections.Generic;
public class GenericList<T>
{
    // The nested class is also generic on T
    private class Node
    {
        // T used in non-generic constructor
        public Node(T t)
        {
            next = null;
            data = t;
        }

        private Node next;
        public Node Next
        {
            get { return next; }
            set { next = value; }
        }
       
        // T as private member data type
        private T data;

        // T as return type of property
        public T Data 
        {
            get { return data; }
            set { data = value; }
        }
    }

    private Node head;
   
    // constructor
    public GenericList()
    {
        head = null;
    }

    // T as method parameter type:
    public void AddHead(T t)
    {
        Node n = new Node(t);
        n.Next = head;
        head = n;
    }

    public IEnumerator<T> GetEnumerator()
    {
        Node current = head;

        while (current != null)
        {
            yield return current.Data;
            current = current.Next;
        }
    }
}
class TestGenericList
{
    static void Main()
    {
        // int is the type argument
        GenericList<string> list = new GenericList<string>();

        for (int x = 0; x < 10; x++)
        {
            list.AddHead(x.ToString()+"dsafl");
        }

        foreach (string i in list)
        {
            System.Console.Write(i + " ");
        }
        System.Console.WriteLine("\nDone");
    }
}