相信童鞋们对static、类、类的成员、方法已经不陌生了。。。
今天看多线程的视频的时候,突然想到一个小小的问题(真的是小小的)
类中的一个方法调用另一个方法的时候,被调用的方法是设成静态的,还是非静态的?
于是乎就做了下面的小测试- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace 类内部调用其它成员方法用是静态的吗
- {
- class Program
- {
- static void Main(string[] args)
- {
- Person p = new Person();
- p.SayHello();
- Console.ReadKey();
- }
- }
- class Person
- {
- public void SayHello()
- {
- //=====================================
- //在这个SayHello()方法中分别调用本类中的一个静态方法和一个非静态方法,都能调用
- Say();
- Say1();
- //-------------------------------------
- //=====================================
- //但是实际上,它们是这样子的:)
- this.Say();
- //this.Say1(); 请改用类型名来访问它
- Person.Say1();
- //-------------------------------------
- //所以说,不只是Program中的类方法,只要访问权限够,其它的问题,比如静态、非静态
- //都是一样的
- //还可以实例化并调用实例方法:
- Person p = new Person();
- p.Say();
- }
- private void Say()
- {
- Console.WriteLine("无static");
-
- }
- private static void Say1()
- {
- Console.WriteLine("有static");
- }
- }
- }
复制代码 所以说啊,这东西都是有规律的,明明很简单的问题,在学习其它知识点的时候,要是不扎实的话,还真会懵一懵脑袋···
。。。
|
|