A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史鹏飞 中级黑马   /  2013-4-25 11:15  /  2171 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 史鹏飞 于 2013-4-26 09:08 编辑


静态方法中只能调用静态方法吗?,如果我想调用GetString()方法,就只能把它定义为静态的?或者还有其他的方法?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

10 个回复

倒序浏览
这个没了。静态方法必须调用静态。
回复 使用道具 举报
是的,静态方法只能访问呢有static修饰的方法或成员,要不就见静态方法去掉static改为非静态方法。:)

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
静态方法中只能调用被static修饰的方法和成员
回复 使用道具 举报
知道了,谢谢
回复 使用道具 举报
所有的静态方法,静态成员都是随着类的建立而建立,
而类是先建立的,实例变量,实例方法是后随实例而建立的,
所以静态方法只能访问静态成员
回复 使用道具 举报
在静态方法中可以调用其他的静态方法、字段和属性,但是不能调用非静态方法、字段、属性,在非静态方法中可以调用静态方法
回复 使用道具 举报
你可以将所在类实例化后,用实例名.成员名 来访问非静态成员,例如:
  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             
  6.             Program aa = new Program();            
  7.             aa.GetString();
  8.         }
  9.         string GetString()
  10.         {
  11.             return "22";
  12.         }
  13.     }
复制代码
回复 使用道具 举报
刘赛 中级黑马 2013-4-26 16:12:50
9#
这样行吗
  1.     class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             string str=GetString();
  6.         }
  7.         static string GetString()
  8.         {
  9.             return "22";
  10.         }
  11.     }
复制代码
回复 使用道具 举报
静态方法是依附于类的,在类加载到内存中后,静态方法就也被加载到内存中了。而非静态方法是依附于对象的,没有对象也就无所谓有非静态方法,非静态方法是在对象被创建以后才创建的。所以,静态方法是先于非静态方法进入内存的,当静态方法进入内存时,非静态方法还没有被创建,所以静态方法无法调用非静态方法。希望对你有所帮助
回复 使用道具 举报
把GetString()方法也写成静态方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马