为了防止用户输入或传入非法值,我们往往需要对类中的属性进行限定。比如在登录系统中,限定密码为数字则必须输入数字,对于年龄的限定必须为0~120,对于性别的设定必须为男或女,现在介绍三种限定方法
属性是用于保护和限定字段的,属性的限定一般是set和get方法,其中set方法是在给属性赋值的时候执行
的,而get则是在对属性进行打印调用的时候使用的
首先我们先创建一个person类,和类下的字段和属性
public class Person//非静态类
{
string _name;//定义字段
public string Name//定义属性
{
get { return _name; }//打印值的时候使用get方法
set {_name = value; }//给对象的属性赋值时使用set方法
}
以上是一个类中的字段和属性的创建,然后我们对name进行一个限定
1.对类下的属性中的get方法进行限定
public string Name
{
get { return _name; }
set {
if (value != "admin")
{
value = "admin";//在此限定了Name无论输入什么都是admin
}
_name = value; }//给对象的属性赋值时使用set方法
}
需要我们对value进行一个条件判断
2.对类下的属性中的set方法进行限定
int _age;
public int Age
{
get {
if (_age > 120 || _age < 0)
{
return _age = 0;
}
return _age; }
set { _age = value; }
}
需要我们在get中对字段进行一个判断
3.在构造函数中进行限定
构造函数
public Person(string name,int age,char gender)
{
this.Name = name;
this.Age = age;
if(gender!='男'&&gender!='女')
{
gender='男';
}
this.Gender = gender;
}
此时当我们调用函数的时候,输入的值若不是男或者女,则会赋值为男
在类文件中新建一个方法
public void out1()
{
Console.WriteLine("{0},{1},{2}",this.Name,this.Age,this.Gender);
}
然后我们在main函数中新建一个Person对象,根据我们的构造函数传入参数并调用out1方法
Person p = new Person("user",-1,'中');
p.out1();