-
C#教程之C#教程之C# readonly关键字
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
readonly是一个修饰字段的关键字。被它修饰的字段只有在初始化或者构造函数中才能够赋值。
class Program
{
public static readonly List<string> DefaultPracticeAreas = new List<string>() { "Criminal Law",
"Estate Planning", "Family Law", "Litigation", "Personal Injury", "Real Estate", "Transactional",
"Unassigned" };
public static readonly string aString = "abbb";
public static readonly List<Person> Personlist = new List<Person>() { new Person(1, "aaa"), new Person(2, "bbb") };
static void Main(string[] args)
{
DefaultPracticeAreas.ElementAt(0) = "111";
aString = "ccc";
Personlist.ElementAt(0).age = 0;
Console.WriteLine(Personlist.ElementAt(0).age);
Console.ReadLine();
}
}
public class Person
{
public int age { get; set; }
public string name { get; set; }
public Person(int a, string n) { age = a; name = n; }
}
对于下面的string型的list 或者纯string 当我们尝试去修改它的值,会发现错误:
DefaultPracticeAreas.ElementAt(0) = "111";
aString = "ccc";
A static readonly field cannot be assigned to (except for a static constructor or a variable initializer)
但是对于引用型变量的list来说 我们还是可以修改其中某个变量的值:
Personlist.ElementAt(0).age = 0;
Console.WriteLine(Personlist.ElementAt(0).age);
Personlist的第一个person元素的age被成功的修改成了0,这说明readonly对于引用类型变量,它限制的不可修改性是针对于引用类型的指针,至于地址里面存放的值,是可以修改的。
栏目列表
最新更新
C# 数据操作系列 - 17 Dapper ——号称可以与
C# 数据操作系列 - 18 让Dapper更强的插件
C#编码转换
python list遍历方法汇总
将Python分成7个阶段学习,你会发现学习
Python中的单例模式如何正确运用?本文详
使用Python爬虫的方式把自己喜欢的音乐的
pandas.cut使用总结
Python之Selenium如何正确运用?案例详解
Python爬虫是如何遍历文档树呢?一招教你
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
图解TCP数据报结构以及三次握手(非常详
TCP协议的粘包问题(数据的无边界性)
SqlServer 利用游标批量更新数据
BOS只读状态修改
SQL Server等待事件—PAGEIOLATCH_EX
数据库多行转换为单一列
获取数据表最后最后访问,修改,更新,
计算经历的时间
SQL查询结果自定义排序
修改数据库默认位置
日期简单加或减
从日期获取年,月或日