关于C#中readonly的变量赋值问题。
来源:互联网 发布:三维接线软件 编辑:程序博客网 时间:2024/06/06 20:31
最近看到了readonly和const的区别,发现了一个自己的知识盲区,就是关于readonly的赋值问题。我的理解是对于readonly的一个变量,如果是值类型的,那么是这个变量的写操作是受限制的,如果是一个引用类型,那么保存的是这个变量的内存地址,对这个引用的写操作是受限制的,但是对于这个变量里面的成员的读写操作是不受限制的。具体可以看下面的一个例子。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{ class Program { public Program() { _testList.Add(123); } private readonly List<int> _testList = new List<int>(); static void Main(string[] args) { Program pro = new Program(); pro.Test(); Console.ReadKey(); } private void Test() { Console.Write(_testList.Count+“ ”); _testList.Add(1); Console.Write(_testList.Count); } }}
输出:1 2
可以看到这时候对_testList的添加操作是不受限制的,因为是改变了_testList里面的成员,而对于_testList里面保存的内存地址并没有改变,所以是可以添加的。
如果把 _testList.Add(1); 修改为 _testList = new List<int>;就会有报错,报错为:无法对只读的变量赋值(构造函数或变量初始值指定项中除外)。
阅读全文
0 0
- 关于C#中readonly的变量赋值问题。
- 关于My97datePicker中readonly的问题
- 关于c语言中变量赋值问题
- 关于c语言中变量赋值问题
- 关于final变量的赋值问题
- c#中浮点变量的赋值
- C# 关于readonly的使用说明
- C#变量的赋值
- 关于C#中readonly的一点小研究
- vb循环中变量赋值的问题
- Java中变量赋值的问题
- Python 中变量的赋值问题
- 关于C/C++中switch语句case中变量不能初始化赋值的问题
- C# ASP.net写WebService中类的成员变量什么时候创建,赋值的问题。
- 【心得】在C#中使用静态变量const和动态变量readonly的区别
- 关于指针结构体函数中指针变量的赋值&的问题思路
- 关于java数组中某个元素用等号赋值给中间变量需要注意的问题。
- 关于赋值表达式中出现 "/" 的问题
- 最长递增子序列
- C++ 控制台打印无输出 无法查找或打开PDB文件
- Spring集成redis缓存
- 【1】coreML入门之结合ARKit场景展示
- Hdu-6183 Color it(cdq分治)
- 关于C#中readonly的变量赋值问题。
- Java
- laravel 添加触发事件
- php curl请求https接口返回curl: (60) SSL certificate problem: unable to get local issuer certificate 错误
- Java常见Lock(五): lock之CyclicBarrier
- Python爬虫入门:爬虫基础了解
- 【2】coreML基于图像的处理(图像识别)
- js键盘键值
- [leetcode]第八周作业