夜光序言:
时光流逝,往事依旧历历在目。只是,人和事已成为心中的的记忆,而时间依旧永恒。
正文:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 案例1
{
class Player
{
private int exp = 1111; //这里定义一个私有的属性exp,但是外部访问不了
//访问一个字段:读取,写入
public int GetExp()
{
return exp; //可以通过这个方法,间接的来访问exp
}
}
class Program
{
static void Main(string[] args)
{
Player p = new Player();
Console.WriteLine(p.GetExp());
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 案例1
{
class Player
{
private int exp = 0; //这里定义一个私有的属性exp,但是外部访问不了
//访问一个字段:读取,写入
//如果希望又能取值,又能赋值,那就没有必要写Get、Set方法,直接把字段公开即可
public int GetExp()
{
return exp; //可以通过这个方法,间接的来访问exp
}
//夜光:我们做一个访问控制,希望经验值增加,不可以减少
public void SetExp(int exp) //把exp传入进去,这个方法没有返回值,只是去设置
{
if (exp < this.exp)
{
/* return;*/ //如果小了,那就直接return,不让设置
throw new ArgumentOutOfRangeException("要设置的经验值不能比当前经验值少");
}
this.exp = exp;
}
public int Exp
{
get
{
return exp;
}
//set相当于上面的SetExp方法
set
{
if (value < this.exp)
{
/* return;*/ //如果小了,那就直接return,不让设置
throw new ArgumentOutOfRangeException("要设置的经验值不能比当前经验值少");
}
this.exp = value;
}
}
}
class Program
{
static void Main(string[] args)
{
Player p = new Player();
/*p.SetExp(1); //设置成-1,很明显会失败*/
p.Exp = 1111;
/* Console.WriteLine(p.GetExp());*/
Console.WriteLine(p.Exp);
Console.ReadLine();
}
}
}