菜鸟提问,引用。
我在一个类里有两个函数;如下:   
 public   static   void   A() 
 { 
 string   s   =   B();//在静态函数中调用b函数 
 }   
 prvite   string   B() 
 { 
 string   str   =    "sfsdf "; 
 return   str; 
 } 
 为什么不行,应该怎么办?谢谢,问题解决马上给分。
------解决方案--------------------肯定不行了, 
 Static member functions are considered to have class scope. In contrast to nonstatic member functions, these functions have no implicit this argument; therefore, they can use only static data members, enumerators, or nested types directly. Static member functions can be accessed without using an object of the corresponding class type.
------解决方案--------------------浅析StackTrace  
        我们在学习函数调用时,都知道每个函数都拥有自己的栈空间。一个函数被调用时,就创建一个新的栈空间。那么通过函数的嵌套调用最后就形成了一个函数调用堆栈。在c#中,使用StackTrace记录这个堆栈。你可以在程序运行过程中使用StackTrace得到当前堆栈的信息。   
 class Program 
     { 
         static void Main(string[] args) 
         { 
             Program a = new Program(); 
             a.FuncA(); 
             Console.ReadLine(); 
         } 
         int FuncA() 
         { 
             FuncB(); 
             return 0; 
         }   
         private void FuncB() 
         { 
             MethodInfo method0 = (MethodInfo)(new StackTrace().GetFrame(0).GetMethod()); 
             MethodInfo method1 = (MethodInfo)(new StackTrace().GetFrame(1).GetMethod()); 
             MethodInfo method2 = (MethodInfo)(new StackTrace().GetFrame(2).GetMethod());               
             Console.WriteLine( "Current Method is : {0} ",method0.Name); 
             Console.WriteLine( "Parent Method is : {0} ", method1.Name); 
             Console.WriteLine( "GrandParent Method is : {0} ", method2.Name); 
         } 
     } 
 程序的输出结果是: 
 Current Method is : FuncB 
 Parent Method is : FuncA 
 GrandParent Method is : Main   
        其中调用GetFrame得到栈空间,参数index 表示栈空间的级别,0表示当前栈空间,1表示上一级的栈空间,依次类推。 
        除了可以获取方法信息外,还可以调用StackFrame类的成员函数,在运行时得到代码的文件信息及行号和列号等。详情可以参考msdn上的一个example