对C#中set{} get{}的一点理解

简介: 对C#中set{} get{}的一点理解

C#是一门面向对象语言, 封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问,这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性。

当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,

1、构造函数

第一种即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。

2、set和get方法

第二种就是通过上面提到的set和get方法

使用成员变量,若定义为private,则不可读,且不可写,该成员只能同过构造函数传值,其他情况无法使用。

若定义为public, 则可读又可写,不安全。

**若想可读不可写,或可写不可读,**就体现出get/set方法的用处了

public class UserInfo
        {
            //定义 用户ID 字段
            private int userid;
            public int UserID
            {
                get { return userid; }
                set { userid = value; }
            }
       }

我定义一个Person类,该类中有userid这个私有域变量,然后我定义set()、get()、这样一来,我不用直接对Person类中的域变量操作,而是通过set和get方法间接地操作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。

相关文章
|
4月前
|
存储 NoSQL Ubuntu
在Ubuntu上安装Redis并学习使用get、set和keys命令
在Ubuntu上安装Redis并学习使用get、set和keys命令
|
27天前
|
XML Java 数据库连接
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
25 0
|
6月前
|
Java
Java-----抽象类为什么不能实例化?抽象方法为什么不能被static修饰?set和get方法的使用方法
Java-----抽象类为什么不能实例化?抽象方法为什么不能被static修饰?set和get方法的使用方法
|
3月前
|
存储 监控 NoSQL
搞定 Redis 数据存储原理,别只会 set、get 了
搞定 Redis 数据存储原理,别只会 set、get 了
40 0
|
3月前
|
监控 JavaScript 前端开发
【面试题】vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
【面试题】vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
|
8月前
|
Java Android开发
eclipse去掉try-catch,构造方法,get,set方法等里面自动生成的注释
eclipse去掉try-catch,构造方法,get,set方法等里面自动生成的注释
66 0
|
9月前
|
C#
C#属性的get与set
C#属性的get与set
|
11月前
|
Android开发
Android Studio 快速获取get,set方法
在写实体类的时候,对每一个字段的get和set方法一个一个敲那是相当难受啊! 那这边如何快速的set,get或者生成构造函数,生成toString方法。
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
设计一个长方形类,成员变量包括长度和宽度,成员函数除包括计算周长和计算面积外,还包括用 Set 方法设置长和宽,以及用 get 方法来获取长
143 0
|
Python
Python描述符(__get__和__set__和__delete__)
Python描述符(__get__和__set__和__delete__)
90 0