17.属性
什么是属性?
属性类似于java中的setter和getter方法,其本质上就是get和set方法
属性的作用?
属性的作用就是保护字段、对字段的赋值和取值进行限定。
基本语法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo {
class Program {
//字段
private string _name;
private int _age;
//属性
public string Name {
get;
set;
}
public int Age {
get;
set;
}
}
}
上述可以看做一个简写。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo {
class Program {
//字段
private string _name;
private int _age;
//属性
public string Name {
get { return _name; }
set { _name = value; }
}
public int Age {
get { return _age; }
set { _age = value; }
}
}
}
使用属性可以对字段进行保护,当字段的值有某些范围时,例如_age不可为负数,那么这时就可以在属性中进行一个限制,如下例代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo {
class Program {
//字段
private string _name;
private int _age;
//属性
public string Name {
get { return _name; }
set { _name = value; }
}
public int Age {
get { return _age; }
set {
if (value < 0) {
value = 0;
}
_age = value;
}
}
}
class Test {
static void Main(string[] args) {
Program p = new Program();
p.Name = "zs";
p.Age = -1;
}
}
}
当通过debug模式调试时,会发现_age最后是为0的。
总结
既有get()也有set()我们诚之为可读可写属性。
只有get()没有set()我们称之为只读属性
没有get()只有set()我们称之为只写属性
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用