理解属性,字段以及方法
对于c#的学习虽然已经三个多月,但多是集中于web方向的那些控件操作,以及一些简单的逻辑,导致很多基础性的知识不是很扎实,今天正好有时间和兴趣,就补了一下这方面的知识。
这部分主要是关于属性,字段以及方法的概念:
为什么有属性?首先是直接把数据字段公开不好,其次是有时候需要对一些用户的输入进行验证,输出有时也需要计算
代码:
using System;
#region //使用属性来读写类中的字段,从而实现对字段的保护
//字段标识符小写,而属性一般以每个单词的第一个字母大写
public class Student
{
public string name;
public int id;
public int age=22;
//set中的判断
public int Id
{
get { return id; }
set {
if (value< 100)
id = value;
else
id = 100;
}
}
//get后的计算
public string Name
{
get { return "Hello "+name; }
set { name = value; }
}
//Age是只读属性
public int Age
{
get { return age; }
}
}
class Test
{
public static void Main()
{
Student stu = new Student();
stu.Name = "beijing";
stu.Id = 123;
//stu.age = 3;正确。属性只读,但是字段可以改
//stu.Age=3;错误。只读属性不可以设
Console.WriteLine("{0}---{1}--{2}",stu.Id,stu.Name,stu.Age);
}
}
#endregion
这里有三个字段name ,id ,age;对应三个属性:Name,Id,Age。Id属性用set对输入进行判断,Name属性get对输出做了修改,Age为只读属性
另外:属性也不同于方法,它没有圆括号,不必指定返回值类型。set{;}get{;}
这部分主要是关于属性,字段以及方法的概念:
为什么有属性?首先是直接把数据字段公开不好,其次是有时候需要对一些用户的输入进行验证,输出有时也需要计算
代码:
using System;
#region //使用属性来读写类中的字段,从而实现对字段的保护
//字段标识符小写,而属性一般以每个单词的第一个字母大写
public class Student
{
public string name;
public int id;
public int age=22;
//set中的判断
public int Id
{
get { return id; }
set {
if (value< 100)
id = value;
else
id = 100;
}
}
//get后的计算
public string Name
{
get { return "Hello "+name; }
set { name = value; }
}
//Age是只读属性
public int Age
{
get { return age; }
}
}
class Test
{
public static void Main()
{
Student stu = new Student();
stu.Name = "beijing";
stu.Id = 123;
//stu.age = 3;正确。属性只读,但是字段可以改
//stu.Age=3;错误。只读属性不可以设
Console.WriteLine("{0}---{1}--{2}",stu.Id,stu.Name,stu.Age);
}
}
#endregion
这里有三个字段name ,id ,age;对应三个属性:Name,Id,Age。Id属性用set对输入进行判断,Name属性get对输出做了修改,Age为只读属性
另外:属性也不同于方法,它没有圆括号,不必指定返回值类型。set{;}get{;}
努力不一定成功,但放弃一定失败!