readonly修饰符在作祟

强化官方解释:

  1. readonly是一个修饰字段的关键字:被它修饰的字段只有在初始化或者构造函数中才能够赋值.
  2. readonly修饰的引用类型字段必须始终引用同一对象: readonly 修饰符可防止字段替换为引用类型的其他实例, 但是,readonly不会妨碍通过该字段修改字段引用的数据。

文字比较拗口,多读几次就能体会。

    private readonly  List<int> _testInt;
Program( List<int> testInt)
{
_testInt = testInt;
}
static void Main(string[] args)
{
ChangeReadonlyRef();
} static void ChangeReadonlyRef()
{
var l = new List<int>{1};
var program = new Program(l);
Console.WriteLine($"testInt.Count= {program._testInt.Count()}");
l = new List<int>(); // l 变量重新指向。 但是 _testInt 还是指向原来的引用。
Console.WriteLine($"testInt.Count= {program._testInt.Count()}");
program._testInt = new List<int>(); //编译报错!!
}

C# readonly修饰符的更多相关文章

  1. C# static readonly 修饰符初始化变量

    同事问了一个问题,readonly和static啥区别? 我就写了个demo运行了下: /*** * 验证初始化次数:static只初始化一次,无论多少用户访问,在内存中只有一份 * readonly ...

  2. const 和 readonly 修饰符的用法

    1. 只有C#内置类型(int,double,long等)可以声明为const;结果.类和数组不能声明为const. 2. readonly 是在字段上使用的修饰符,直接以类名.字段访问. 3. co ...

  3. C#中const 和 readonly 修饰符的用法详解

    1.const是不变常量,在编译的时候就需要有确定的值,只能用于数值和字符串,或者引用类型只能为null.(这里为什么要把字符串单独拿出来?是因为字符串string是引用类型,但是使用的时候却感觉是值 ...

  4. 关于readonly修饰符

    修饰字段: 1.值类型:不能修改值 2.引用类型:是指该字段引用的对象不可以修改,但是里面的内容是可以修改的! 示例: static void Main(string[] args) { Consol ...

  5. C# const和readonly修饰符的区别

    const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再 ...

  6. c# 访问修饰符的访问权限

    1. 访问修饰符. 指定声明的类型和类型成员的可访问性. (1) public:是类型和类型成员的访问修饰符.公共访问是允许的最高访问级别.对访问公共成员没有限制. (2) private:是一个成员 ...

  7. C#语言中的修饰符

    public:公有访问.不受任何限制. private:私有访问.只限于本类成员访问,子类和实例都不能访问. protected:保护访问.只限于本类和子类访问,实例不能访问. internal:内部 ...

  8. 【.Net】 C#访问修饰符

    一 类的修饰符:  C#中类的默认修饰符是internal.1 private 只有对包.NET中的应用程序或库才能访问.2 public 不限制对类的访问. 3 protected 只可以被本类和其 ...

  9. C#与Java在修饰符上的不同

    1.readonly 修饰符仅用于修饰类的数据成员.正如其名字说的,一旦它们已经进行了写操作.直接初始化或在构造函数中对其进行了赋值,数据成员就只能对其进行读取. readonly 和 const 数 ...

  10. .NET C#基础(2):方法修饰符 - 给方法叠buff

    0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍C#中的方法修饰符的含义和使用以及注意事项.   1. 阅读基础   理解C#基本语法(如方法声明)   理解OOP基本概念(如多 ...

随机推荐

  1. [转帖]Linux 下rsync命令详细整理

    https://blog.csdn.net/weixin_44052462/article/details/116134761 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面 ...

  2. [转帖]绕过CDN查看网站真实IP

    https://www.itblogcn.com/article/viewcdnip.html   这是一个总结帖,查了一下关于这个问题的国内外大大小小的网站,对其中说的一些方法总结归纳形成. 首先, ...

  3. [转帖]ext4的fsync性能和nodelalloc参数的分析

    原文:http://blog.thinksrc.com/?p=189001 感叹归感叹,发泄完了还得继续过. 前几天忙的不可开交,周报上面竟然能列出11项,想想以前在T公司时候的清闲,现在的老板的真幸 ...

  4. [转帖]ioping测试

    https://www.cnblogs.com/ishmaelwanglin/p/10839702.html 一个实时显示磁盘io延时的工具,以类似ping 的输出一样展示输出结果 常用参数: -c ...

  5. [转帖]Innodb存储引擎-锁(数据库锁的查看、快照读&当前读、MVCC、自增长与锁、外键与锁、行锁、并发事务的问题、阻塞、死锁、锁升级、锁的实现)

    文章目录 锁 lock 与latch 读锁/写锁/意向锁 INNODB_TRX/INNODB_LOCKS/INNODB_LOCK_WAITS 一致性非锁定读(快照读) 一致性锁定读(当前读) MVCC ...

  6. ebpf的简单学习

    ebpf的简单学习-万事开头难 前言 bpf 值得是巴克利包过滤器 他的核心思想是在内核态增加一个可编程的虚拟机. 可以在用户态定义很多规则, 然后直接在内核态进行过滤和使用. 他的效率极高. 因为避 ...

  7. 【转贴】java 进程运行状态图解

    java 进程运行状态图解   原文博客地址 https://www.cnblogs.com/GooPolaris/p/8079490.html java中进程的状态有 6 种: NEW(新建).RU ...

  8. echarts使用transform缩放后导致图标模糊

    echarts使用transform缩放后导致图标模糊 --的解决办法 当使用了transform: scale(x,y)缩放后致使echarts图表模糊.怎么解决这个问题呢? 第一种解决办法:将ca ...

  9. Vue3中hook的简单使用

    创建文件夹 在src下创建文件夹.文件名称为hooks. hooks下的文件夹下,是你的封装的hook: 通过命名为useXXXXXX usexy.js 文件是封装的获取屏幕的坐标 import { ...

  10. 【小测试】VictoriaMetrics中如何汇总单个time series上的多个data point?

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 问题最终在andy专家的帮助下解决,但是内部的原理还是很迷 ...