Stack泛型
/*
* 引入命名空间System.Collections。使用.Net提供的泛型类Stack<T>,实现字符串或者数字的反序。
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Stack<string> st = new Stack<string>();
string s = Console.ReadLine();
char [] a = s.ToCharArray();
foreach (var item in a)
{
st.Push(item.ToString());
}
while (st.Count>0)
{
Console.Write(st.Pop());
}
Console.ReadKey();
}
}
}
运行结果:
Queue泛型
/*
* 引入命名空间System.Collections。使用.Net提供的泛型类Queue<T>,实现字符串或者数字的反序。
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Queue<int> st = new Queue<int>();
int []a={0,2,3,4,5};
int sum = 0;
foreach (var item in a)
{
st.Enqueue(item);
}
while (st.Count>0)
{
sum += st.Peek();
Console.Write(st.Dequeue());
}
Console.WriteLine("\n出队元素之和为:{0}", sum);
Console.ReadKey();
}
}
}
运行结果:
泛型约束
/*
* 泛型约束应用实例
* */
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ArrayList ls = new ArrayList();
int []a={12,45,16,26};
ls.AddRange(a);
MyClass.Sort<ArrayList>(ls);
foreach(int item in ls)
Console.WriteLine(item);
Console.ReadKey();
}
}
class MyClass {
public static void Sort<T>(T s) where T : ArrayList //泛型约束,T适合于ArrayList集合
{
s.Sort();
}
}
}
运行结果:
注意:
where T :ArrayList 用where关键字来给Sort泛型方法添加了约束,约束了T类型的范围。
当返回T类型值时,用 return default(T); //通过default确定返回的是引用类型还是值类型。