using System; using System.Collections.Generic; using System.Linq; using System.Text; /* 常量与静态成员 * const常量,常量名要大写 * 不用new就能用的方法: static方法,static方法其实就是普通的函数 * 在static方法中可以调用其他static方法,字段,属性,但不能调用非static方法,字段,属性,在非static方法可可以调用static的方法,字段 * * */ namespace _14常量 { class Program { public const int pi = 3; //public const不用new一个类就可以直接使用的 static void Main(string[] args) { /*int r = 10; int l = 2 * pi * r; Console.WriteLine("周长:{0}",l); int m = pi * r * r; Console.WriteLine("面积:{0}",m); */ //静态成员方法的访问,可以直接访问 Person.TotalCount = 11; Console.WriteLine("Person.TotalCount=={0}", Person.TotalCount); //Person.age = 22; DoIt(); Program p = new Program(); p.ToIt(); //不同类中的非静态方法访问静态访问 Dog d = new Dog(); d.叫换(); //静态方法访问静态访法 //Person.人口汇报(); Person pp = new Person(); pp.SayHello(); int returint = ConsoleHelper.ReadInt(); Console.WriteLine("返回值为:{0}",returint); //一个静态空不能被实例化 //静态类一般用来实现一些纯的函数类 //ConsoleHelper = new ConsoleHelper(); Console.ReadKey(); } public void ToIt() { Console.WriteLine("在非静态函数中访问Person的静态方法:{0}",Person.TotalCount); } public static void DoIt() { Console.WriteLine("在DoIt静态函数中访问Person的静态函数:{0}",Person.TotalCount); } } public class Person { public int age; public static int TotalCount; public static void 人口汇报() { //Console.WriteLine("总人口: {0},年龄:{1}",TotalCount,age); //在static成员中不能直接调用非static成员 } public void SayHello() { //但非静态成员函数,可以直接访问静态成员属性 Console.WriteLine("我的年龄是:{0},全球总人口是:{1}",age,TotalCount); } } public class Dog { public void 叫换() { Console.WriteLine("旺旺:{0}",Person.TotalCount); } } //声明一个静态的类 static class ConsoleHelper { public static int ReadInt() { string str = Console.ReadLine(); return Convert.ToInt32(str); } } }