首页 > Windows开发 > 详细

关于C#的一些小知识

时间:2015-10-15 20:25:22      阅读:198      评论:0      收藏:0      [点我收藏+]

问题一 :是否可以从一个static方法内部发出对非static方法的调用?

 

不行,
可以这样理解
static修饰的方法可以直接用类名调用
非static修饰的方法必须用类new出对象才能调用
当我们用类名直接调用时,可能这个类的对象并没有new。
如果这时候static方法里调用非static的方法就会出现空指针异常,
当然这种错误编译时就不会通过。

错误代码演示:

 1  class Program
 2     {
 3 
 4         public int fact(int n)
 5         {
 6             if (n <= 1)
 7                 return 1;
 8             else
 9                 return n * fact(n-1);
10         }
11 
12         static void Main(string[] args)
13         {
14             //利用递归来计算阶乘
15             fact    //看到了吗?fact是根本打不出来的。
16            
17         }
18     }

 正确代码演示:

 

 1  class Program
 2     {
 3 
 4         static int fact(int n)
 5         {
 6             if (n <= 1)
 7                 return 1;
 8             else
 9                 return n * fact(n-1);
10         }
11 
12         static void Main(string[] args)
13         {
14             //利用递归来计算阶乘
15             Console.WriteLine(fact(3)); 
16            
17         }
18     }

 

关于C#的一些小知识

原文:http://www.cnblogs.com/yunquan/p/4883172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!