下面来说下在C#在类里面和JAVA不同的一点,虽然两者都有字段与方法,但是C#多了一个属性,通过属性来控制私有成员变量的值是非常重要而且方便的。
比如就下面这个例子来说,年龄是人的一个很重要的属性,如果我们直接把年龄声明为public看上去可以很方便的进行修改,但是我们需要防止一些恶意的输入,比如输入-10?
用属性就能够很好地解决这个问题,通过这个方法来对重要的成员进行包裹,保证它的安全性。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Person
{
private int age;
public int Age
{
get
{
return this.age;
}
set
{
if (value >= 0)
{
this.age = value;
}
}
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.Age = -2;
Console.WriteLine(p.Age);
p.Age = 10;
Console.WriteLine(p.Age);
p.Age = -1;
Console.WriteLine(p.Age);
Console.ReadKey();
}
}
}
需要注意的是:
1)每一个属性最少有一个get或set
2)set中value是一个关键词,代表用户的输入