(四十二)C#编程基础复习——C#属性
属性是类、结构体和接口的成员,类或结构体中的成员变量称为字段,属性是字段的扩展,使用访问器可以读写私有字段的值。属性没有确切的内存位置,但具有可读写或计算的访问器。例如有一个名为Student的类,其中包含age、name和code三个私有字段,我们不能在类的范围以外直接访问这些字段,但是可以访问这些私有字段的属性。
一、访问器
属性访问器有两种,分别是get属性访问器和set属性访问器。其中get访问器用来返回属性的值,set访问器用来为属性设置新值。在声明访问器时可以仅声明其中一个,也可以两个访问器同时声明,如下案例:
//声明String 类型的Code属性
public string Code
{
get
{
return Code;
}
set
{
Code = value;
}
}
//声明String类型的Name属性
public string Name
{
get
{
return Name;
}
set
{
Name = value;
}
}
//声明int类型的Age属性
public int Age
{
get
{
return Age;
}
set
{
Age = value;
}
}
属性的用法案例
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _003
{
/// <summary>
/// C#属性——访问器案例
/// </summary>
internal class Program
{
static void Main(string[] args)
{
//创建一个新的Student对象
Student s = new Student();
//设置Student的code、name和age
s.Code = "001";
s.Name = "Zar";
s.Age = 30;
Console.WriteLine("学生信息:{0}",s);
//增加年龄
s.Age += 1;
Console.WriteLine("学生信息:{0}",s);
Console.ReadKey();
}
}
class Student
{
private string code = "N.A";
private string name = "not know";
private int age = 0;
//声明类型为String的Code属性
public string Code
{
get
{
return code;
}
set
{
code = value;
}
}
//声明类型为String的Name属性
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
//声明类型为int的Age属性
public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public override string ToString()//重写
{
return "编号="+Code + ",姓名=" + Name + ",年龄=" + Age;
}
}
}
二、抽象属性
抽象类中可以拥有抽象属性,这些属性会在派生类中实现,示例如下:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _003
{
/// <summary>
/// C#属性——访问器案例
/// </summary>
internal class Program
{
static void Main(string[] args)
{
//创建一个新的Student对象
Student s = new Student();
//设置Student的code、name和age
s.Code = "001";
s.Name = "Zar";
s.Age = 30;
Console.WriteLine("学生信息:{0}",s);
//增加年龄
s.Age += 1;
Console.WriteLine("学生信息:{0}",s);
Console.ReadKey();
}
}
public abstract class Person
{
public abstract string Name
{
get;
set;
}
public abstract int Age
{
get;
set;
}
}
class Student
{
private string code = "N.A";
private string name = "not know";
private int age = 0;
//声明类型为String的Code属性
public string Code
{
get
{
return code;
}
set
{
code = value;
}
}
//声明类型为String的Name属性
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
//声明类型为int的Age属性
public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
public override string ToString()//重写
{
return "编号="+Code + ",姓名=" + Name + ",年龄=" + Age;
}
}
}
分类:
C#基础
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库