C# 属性
访问修饰符 数据类型 属性名
{
get {
return 变量名;
}
set {
变量名 = value;
}
}
访问修饰符用来确定属性的可用范围,下面介绍常用的几个访问修饰符。
public
:不限制对该属性的访问。
protected
:只能从其所在类和所在类的子类(派生类)进行访问。
internal
:只有其所在类才能访问。
private
:私有访问修饰符,只能在其声明类中使用。
换一种说法:
public
:对任何类和成员都公开,无限制访问;
protected
:仅仅对该类以及该类的派生类公开:
private
:仅仅对该类公开;
internal
:只能值包含该类的程序集中访问该类; // 简单理解,同一个 dll
protected internal
:只能在本类,派生类或者包含该类的程序集中访问
测试:
class PTest
{
static void Main(string[] args)
{
Program test = new Program();
test.Day = 5;
Console.WriteLine(test.Day);
}
}
public class Program
{
private int day;
public int Day {
get {
return day;
}
set { // 只能传 0~8 的值
if(value > 0 && value < 8) {
day = value;
}
}
}
}
输出:
5
如果超出范围,其输出的是默认值 0。
private set:
class Program
{
public Program()
{
a = 200;
}
private int a;
public int A {
get {
return a;
}
private set {
a = value;
}
}
}
class PMain
{
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine("A = {0}", p.A); // 可以读
// p.A = 100; // 这样不允许。
Console.Read();
}
}
private set 这样的形式,类外可读不可写。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了