using System;
using System.Collections.Generic;
using System.Text;namespace zhileixing
{
    class Program
    {
        static void Main(string[] args)
        {
            public static void PassesInteger(int fortyFour)
            {
                int fortyFour=44;
                TakesInteger(fortyFour);
                System.Console.WriteLine(fortyFour);
             }
            static void TakesInteger(int i)
            {
                i=33;
            }
        }
            
    }
}

解决方案 »

  1.   

    按照这道题,打印出来的应该是33而不是44.如果你想打印出44, TakesInteger(ref int i) , 然后用TakesInteger(ref fortyFour);{ 
                    static   void   Main(string[]   args) 
                    {                 } 
                            public   static   void   PassesInteger(int   fortyFour) 
                            { 
                                    int   fortyFour=44;   //局部变量不能同参数同名。
                                    TakesInteger(fortyFour); 
                                    System.Console.WriteLine(fortyFour); 
                            } 
                            static   void   TakesInteger(ref int   i) 
                            { 
                                    i=33; 
                            }                         
            } 
      

  2.   

    這樣還不行
     static   void   Main(string[]   args) 
                    {                 } 
                            public   static   void   PassesInteger(int   fortyFour) 
                            { 
                                    int   fortyFour=44;   //局部变量不能同参数同名。
                                    TakesInteger(ref fortyFour); 
                                    System.Console.WriteLine(fortyFour); 
                            } 
                            static   void   TakesInteger(ref int   i) 
                            { 
                                    i=33; 
                            }                         
            } 
      

  3.   

    怎么不行?有没有在main里执行PassesInteger?
    static  void Main(string[] args)   
    {   
      PassesInteger(44);   
    }
      

  4.   

    我从来没这样写过代码,可能又多学了一招.
    楼主你为什么在方法中居然又"定义"其它的方法哦?一般来说我没看到这种例子,
    很多情况下大概是错的.不知道你这种静态的如何.在不改变的意思的情况下,按我的理解对你提供的例子做一个变化:using   System; 
    using   System.Collections.Generic; 
    using   System.Text; namespace   zhileixing 

            class   Program 
            { 
                    static   void   Main(string[]   args) 
                    {                          
                           int   fortyFour=44; 
                           TakesInteger(fortyFour); 
                           System.Console.WriteLine(fortyFour); 
                    } 
                    static   void   TakesInteger(int   i) 
                    { 
                            i=33; 
                    } 
                            
            } 
    }如果是这样的话,那么,输出应该是:44
    转进去的值仅限影响TakesInteger(int i){...}这个方法的内部.
      

  5.   


    using   System; 
    using   System.Collections.Generic; 
    using   System.Text; namespace   zhileixing 

            class   Program 
            { 
                    static   void   Main(string[]   args) 
                    {                          
                           int   fortyFour=44; 
                           TakesInteger(fortyFour); 
                           System.Console.WriteLine(fortyFour); 
                    } 
                    static   void   TakesInteger(int   i) 
                    { 
                            i=33; 
                    } 
                            
            } 
    }输出的是44,引用类型传递的地址,改变它的值时只是改变了它所指向的地址
      

  6.   

    楼主用的是.net4.0,你没玩过,不懂