代码改变世界

几个不错的小题目,适合作为考题

2007-06-20 15:06  老羽  阅读(272)  评论(1编辑  收藏  举报
请输出程序运行结果
 class Class1  
    
{  
       
private string str = "Class1.str";  
       
private int i = 0;  
       
static void StringConvert(string str)  {  
           str 
= "string being converted.";  
       }
  
       
static void StringConvert(Class1 c)  {  
           c.str 
= "string being converted.";  
       }
  
       
static void Add(int i)  {  
           i
++;  
       }
  
       
static void AddWithRef(ref int i)  {  
           i
++;  
       }
  
       
static void Main()  {  
           
int i1 = 10;  
           
int i2 = 20;  
           
string str = "str";  
           Class1 c 
= new Class1();  
           Add(i1);  
           AddWithRef(
ref i2);  
           Add(c.i);  
           StringConvert(str);          
           StringConvert(c);  
           Console.WriteLine(i1);  
           Console.WriteLine(i2);  
           Console.WriteLine(c.i);  
           Console.WriteLine(str);  
           Console.WriteLine(c.str);  
       }
   
    }
  


    
public abstract class A   
    
{  
        
public A()   
       
{  
            Console.WriteLine(
'A');  
        }
  
        
public virtual void Fun()   
       
{  
            Console.WriteLine(
"A.Fun()");  
        }
  
    }
  

    
public class B: A   
    
{  
        
public B()  
        
{  
            Console.WriteLine(
'B');  
        }
  

        
public new void Fun()   
        
{  
            Console.WriteLine(
"B.Fun()");  
        }
  

        
public static void Main()   
        
{  
           A a 
= new B();  
           a.Fun();  
        }
  
    }
  

    
public class A   
    
{  
        
public virtual void Fun1(int i)  
        
{  
            Console.WriteLine(i);  
        }
  

        
public void Fun2(A a)    
        
{  
            a.Fun1(
1);  
            Fun1(
5);  
        }
  
    }
  
    
public class B : A   
    
{  
        
public override void Fun1(int i)     
        
{  
            
base.Fun1 (i + 1);  
        }
  

        
public static void Main()    
        
{  
            B b 
= new B();  
            A a 
= new A();  
            a.Fun2(b);  
            b.Fun2(a);           
        }
  
    }