C#属性的get与set

简介: C#属性的get与set

       在敲机房重构,但是在敲代码的过程中对属性的get和set有所疑惑,比如说,属性可不可以只读不写,可以不可以只写不读,get和set可不可以调换顺序等问题,然后我就带着一系列的问题回去去看了看C#视频关于get和set的一些视频,看了视频之后真的是拨开云雾见青天。

      属性的存在是为了保护与之相对应的字段的,保证字段的读取和赋值符合要求。而且要注意的一点是允许外部访问的变量一定要生命为属性。

      属性可以分为三种:读写、只读、只写

      读写:既有get也有set,外部可以对内部的字段进行赋值,再通过get进行返回,再通过外部进行对结果的显示,但是在通过外部显示的时候可以显示不是外部赋予的值,也就是说get返回值的时候可以将返回的值进行修改和限制,这样最后显示出来的值就有可能不是set赋予的值了。一般情况下get读取的的值就是set设置的值,但是也可以让get读取的值不是set设置的值。

      只读:只有get没有set。外部只能读值,不能将值进行修改。一旦进行修改就会报错。

      只写:只有set没有get。外部只能赋值,但不能读取值。一旦进行读取也会报错。


相关文章
|
5月前
|
缓存 监控 Java
ThreadLocal 源码解析get(),set(), remove()用不好容易内存泄漏
ThreadLocal 源码解析get(),set(), remove()用不好容易内存泄漏
71 1
|
15天前
|
C#
SET访问器和GET访问器
SET访问器和GET访问器
25 2
idea按住alt + insert 没有出现get和set方法怎样解决
idea按住alt + insert 没有出现get和set方法怎样解决
|
1月前
|
安全 C# 索引
C#一分钟浅谈:属性与索引器的定义
本文深入浅出地介绍了C#编程中的属性和索引器。属性让字段更安全,通过访问器方法在读写时执行额外操作,如验证数据有效性;索引器则赋予类数组般的访问方式,支持基于索引的数据访问模式。文章通过示例代码展示了如何定义及使用这两种特性,并提供了常见问题及其解决方案,帮助读者写出更健壮、易维护的代码。希望读者能从中学习到如何有效利用属性和索引器增强C#类的功能性。
68 12
|
5月前
|
存储 编译器 C#
|
2月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
2月前
|
Java Linux 开发者
|
2月前
|
存储 安全 编译器
C#中的属性
C#中的属性
43 7
|
2月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 是否记录具体读/写(Get/Set)或删除(Del)了哪些key呢?
【Azure Redis 缓存】Azure Cache for Redis 是否记录具体读/写(Get/Set)或删除(Del)了哪些key呢?
|
2月前
Intellij idea 生成带注释的get/set
Intellij idea 生成带注释的get/set
88 0