C#中的const和readonly关键字详解
const和readonly经常被用来修饰类的字段,两者有何异同呢?
const
1、声明const类型变量一定要赋初值吗?
public class Student
{
public const int age;
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const int age = 18;
}
2、声明const类型变量可以用static修饰吗?
public class Student
{
public static const int age = 18;
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const int age = 18;
}
因为const默认是static。
3、运行时变量可以赋值给const类型变量吗?
public class Student
{
public const int age = 18;
public Student(int a)
{
age = a + 1;
}
}
生成的时候,会报如下错:
const类型变量是编译期变量,无法把运行时变量赋值给编译期变量。
4、const可以修饰引用类型变量吗?
public class Student
{
public const Teacher teacher = new Teacher();
}
public class Teacher
{
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const Teacher teacher = null;
}
public class Teacher
{
}
readonly
1、声明readonly类型变量一定要赋初值吗?
以下不赋初值的写法正确:
public class Student
{
public readonly int age;
}
以下赋初值的写法也对:
public class Student
{
public readonly int age = 18;
}
2、运行时变量可以赋值给readonly类型变量吗?
以下在构造函数中给readonly类型变量赋值是可以的:
public class Student
{
public readonly int age = 18;
public Student(int a)
{
age = a;
}
}
3、声明readonly类型变量可以用static修饰吗?
以下写法正确:
public class Student
{
public static readonly int age = 18;
}
总结
const修饰符:
readonly修饰符:
到此这篇关于C#关键字const和readonly的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播