const和readonly经常被用来修饰类的字段,两者有何异同呢? const 1、声明const类型变量一定要赋初值吗? 一定要赋初值 public class Student
const和readonly经常被用来修饰类的字段,两者有何异同呢?
一定要赋初值
public class Student
{
public const int age;
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const int age = 18;
}
不可以
public class Student
{
public static const int age = 18;
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const int age = 18;
}
因为const默认是static。
不可以
public class Student
{
public const int age = 18;
public Student(int a)
{
age = a + 1;
}
}
生成的时候,会报如下错:
const类型变量是编译期变量,无法把运行时变量赋值给编译期变量。
可以,但只能给引用类型变量赋null值。
public class Student
{
public const Teacher teacher = new Teacher();
}
public class Teacher
{
}
生成的时候,会报如下错:
正确的应该这样写:
public class Student
{
public const Teacher teacher = null;
}
public class Teacher
{
}
不一定,既可以赋初值,也可以不赋初值。
以下不赋初值的写法正确:
public class Student
{
public readonly int age;
}
以下赋初值的写法也对:
public class Student
{
public readonly int age = 18;
}
可以
以下在构造函数中给readonly类型变量赋值是可以的:
public class Student
{
public readonly int age = 18;
public Student(int a)
{
age = a;
}
}
可以的
以下写法正确:
public class Student
{
public static readonly int age = 18;
}
const修饰符:
readonly修饰符:
到此这篇关于C#关键字const和readonly的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。
--结束END--
本文标题: C#中的const和readonly关键字详解
本文链接: https://lsjlt.com/news/171573.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0