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);
}
}
}