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 这样的形式,类外可读不可写。



另外:
1.关于访问修饰符
2.关于属性

posted @   double64  阅读(89)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示