C#.NET中的泛型(带参数的类)在栈中的运用

/*
 * Created by SharpDevelop.
 * User: noo
 * Date: 2009-8-15
 * Time: 15:57
 * 
 * 泛型在栈中的运用
 
*/
using  System ;
class  A < T > // 注意这个类的写法,<T>代表的是一种数据类型(如int,string,byte等)
{
    
private  T[] stack; // 定义数据类型为T的数组
     private   int  count;
    
public  A( int  size)
    {
        stack
= new  T[size];
        count
= 0 ;
    }
    
public   void  input(T ip)
    {
        stack[count
++ ] = ip;
    }
    
public  T output()
    {
        
return  stack[ -- count];
    }
}
class  B
{
    
static   void  Main()
    {
        A
< string >  a = new  A < string >  ( 10 ); // 实例化定义的类,这里T指代的是string类型的。
        System.Console .WriteLine ( " 请输进栈成员: " );
        
string  line = Console.ReadLine ();
        
string  trimLine = line.Trim();
        
string [] strList = trimLine.Split ( '   ' );
        
int  emptyCount = 0 ; // 记录空白记录的个数
         foreach ( string  s  in  strList)
        {
            
if  (s.Trim () != "" )
            {
                a.input(s);
// 如果上面用定义的数组用object类型,则这里是一次装箱操作
            }
            
else
            {
                emptyCount
+= 1 ;
            }
        }
        Console.WriteLine (
" 出栈顺序为: " );
        
for ( int  i = 0 ;i < strList.Length - emptyCount ;i ++ )
        {
            Console.WriteLine (a.output());
// 如果上面用定义的数组用object类型,则这里是一次拆箱操作
        }
    }
}
输出结果:
C#.NET中的泛型(带参数<T>的类)在栈中的运用

你可能感兴趣的:(.net)