C#中泛型在Class上的实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            GenericArray<int> intArray = new GenericArray<int>(5);//实例化一个泛型的数组
            for (int i = 0; i < 5; i++)
            {
                intArray.SetItem(i, i * 5);
                Console.WriteLine(intArray.GetItem(i));
            }
            Console.WriteLine();

            //同样的方法用于字符串数组:
            GenericArray<char> charArray = new GenericArray<char>(5);
            for (int i = 0; i < 5; i++)
            {
                charArray.SetItem(i, (char)(i +97));
                Console.WriteLine(charArray.GetItem(i));
            }
        }
        public class GenericArray<T>
        {
            private T[] array;
            //构造函数
            public GenericArray(int size)
            {
                array = new T[size];
            }
            //读取方法
            public T GetItem(int index)
            {
                return array[index];
            }
            //赋值方法
            public void SetItem(int index, T value)
            {
                array[index] = value;
            }
        }
    }
}

时间: 2024-11-07 20:16:25

C#中泛型在Class上的实现的相关文章

Java 中泛型的全面解析

Java泛型(generics) 是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JDK 5中的新集合类框架中.对于泛型概念的引入,开发社区的观点是褒贬不一.从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误.而从不好的地方来说,为了保证与旧有版本的兼容性,Java泛型的实现上存在着一些不够优雅的

Java中泛型 使用

泛型: 1.5  之后出现  提高安全 1      泛型 确定 集合容器的类型. 2      <> 接收一种数据类型,(引用数据类型) ArrayList<String> lis = new ArrayList<String>() 目的: 将运行时期的 错误 转化到 编译时期,提高了安全性! 3      不需要 强制类型转换.  更加安全! 泛型的 擦除: 泛型在编译时期使用!使用完毕直接擦除. 编译完的时候 不存在 泛型. 好处: 使用了 泛型,不自需要强制类型

Java中泛型 类型擦除

转自:Java中泛型是类型擦除的 Java 泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,但有一点需要注意:Java 的泛型在编译器有效,在运行期被删除,也就是说所有泛型参数类型在编译后都会被清除掉,看下面一个列子,代码如下: public class Foo { public void listMethod(List<String> stringList){ } public void listMethod(List<Integer> intList) {

C#中泛型的使用

1. List<T> 2. Dictionary<TKey, TValue> 命名空间:using System.Collections.Generic; 普通数组:在声明时必须制定数组的长度和数据类型:ArrayList:数组元素数据类型和长度不受限制,但效率稍微低些:泛型:类似于数组功能,其长度不受限制,数据类型在声明时必须指定. C#中预定义了集中常用的泛型类,如:List<T>.Dictionary<TKey, TValue>.Queue<T&

Java中泛型的理解

Java中的泛型,本质上来说,就是是参数化类型,就是说所操作的数据类型被指定为一个参数,而不是确定的某种类型.这种数据类型可以用在类.接口和方法创建中.即泛型类.泛型接口.泛型方法.这样说可能不够生动,来举些例子说明一下. 例子一 我们通过 例子一 来简单看看泛型的应用场景.下面的情况中,没有使用泛型: public class FanXingTest { public static void main(String[] args) { ArrayList arrayList = new Arr

你了解泛型通配符与上下界吗?

在进入主题之前, 我们先简单说一下 Java 的泛型(generics).它是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JDK 5中的新集合类框架中. 今天我们主要说如下内容: 泛型的背景 通配符以及上下界 泛型及通配符的使用场景 为什么使用泛型及背后的问题?我们来看一下官方的说法: Stronger type checks at compile time.A Java com

Unity3D 在自定义脚本中实现Button组件上的OnClick面板

Unity3D 在自定义脚本中实现Button组件上的OnClick面板UnityEvent脚本代码事件传参多参数传入下述内容不对c#语法做过多讲解,仅对已入门并有兴趣的同学做为学习和拓展的资料 大家在Unity制作的过程中一定都使用过UI功能,那么很多人也一定见过这个面板: 那么我们如何能在自己的脚本中添加上像OnClick这样的面板呢. UnityEventUnity中内置了一个UnityEvent类作为事件处理的类,我们只要在脚本中声明出来,Unity便会自动添加到脚本面板上,这样便可以在

[转]:Delphi XE中泛型数组的使用范例

Delphi XE中泛型数组的使用范例,下面的范例简单的使用了泛型字符串数组,如用 TArray 代替 array of Word, 还可以使用 TArray 类提供的算法(就是少了点). uses Generics.Collections, Generics.Defaults; {测试 TArray 的 Sort 方法} procedure TForm1.Button1Click(Sender: TObject); var arr: TArray<string>; //同 array of

泛型定义在接口上

/*泛型定义在接口上 *  * */ package 泛型; interface Inter<T>{    void show(T t);}//第一种方式class InterImpl implements Inter<String>{ public void show(String t) {        System.out.println("show:"+t);    }    }//第二种方式class InterImpl2<T> imple