C#学习笔记——属性

属性是C#中一种特性,允许控制字段的访问和操作。它们可以提供只读或只写的访问,以及在设置和获取值时执行额外的逻辑,如加密或条件检查。文章通过示例展示了如何使用属性,包括简写形式和带有自定义逻辑的完整get/set方法,并讨论了访问修饰符的应用,如限制外部对属性的修改或读取。
摘要由CSDN通过智能技术生成

C#学习笔记——属性

……

……

1;属性介绍

介绍:属性是C#独有的一个特点,通过给类添加属性,可以使得字段拥有更大的可操作性。简单来说,如果类中只有字段的话,那么可以给字段设置public或者private,而public可以使得字段在类外被读取并且被修改,而private使得字段无法在类外修改甚至无法读取,但是,如果我们有一个需求,要在类外读取但是不能修改字段的值呢?

比如说,我们在开发游戏的时候,可以读取到游戏屏幕的长和宽,但是,这个长和宽是不能被我们修改的,而这就要用到属性了。

……

……

2;属性可以对字段进行特殊处理

介绍:在字段的set和get中,可以进行一些特殊处理,使得属性拥有更加灵活的用法。比如说可以在set和get中进行加密处理,或者在输出值之前进行一个逻辑处理,都是可以的。

……

……

3;代码详解:

如下,是常见的属性的简写形式,get和set同时存在便可以在类外进行读取和修改。而如果缺少set,那么就无法在类外修改Id的值,如果缺少get,那么就无法在类外读取到Id的值。

using System;
namespace study
{
 
    class Student
    {
        public int Id { get; set; }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Student stu=new Student();
            stu.Id = 123;
            Console.WriteLine(stu.Id); 
        }
    }
}

除了这个简写形式外,我们还可以在get和set里面添加更多的逻辑,如下所示:

在如下的代码中,就展示了get和set的全貌,其set中的value,代表的是从外面赋进来的值,也就是赋值的123。通过这个value,就可以在set中对传入的值进行操作,然后再由get返回值(注意:在set和get中都可以去写逻辑)。其中,用到了一个字段id,这个id是私有的字段,也就是Id属性处理过程中的一个媒介。(一般来说,字段第一个字母小写,而属性第一个字母大写)。

除此之外,get和set前面还可以添加访问修饰符,不过这个访问修饰符不能大于属性前面的访问修饰符,比如现在属性ID前面的修饰符是public,那么get和set前面的访问修饰符的访问权限就不能超过public,那加这个访问修饰符有什么用呢?

很有用。

比如说,不想让别人在类外修改属性的话,就可以把set的访问修饰符变为private,如果不想让别人读取的话,就可以把get的访问修饰符变为private,而默认情况下,get和set的访问修饰符和属性的访问修饰符一样。就比如下面的代码中,get和set的访问修饰符就是public。

using System;
namespace study
{
 
    class Student
    {
        private int id;
        public int Id
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
            }
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Student stu=new Student();
            stu.Id = 123;
            Console.WriteLine(stu.Id); 
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值