using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
/// <summary>
/// 作者:it小金 www.jb200.com
/// 功能:c#只读字段和常量的区别,以及静态
构造函数的使用
/// </summary>
class Program
{
static void Main(string[] args)
{
Console.WriteLine(test.a);
Console.WriteLine(test.b);
Console.Read();
}
}
public class test
{
public static
readonly int b;//只读字段可以使用static关键字,只读字段可以不进行初始化赋值,只读字段只能在构造函数或变量初始化时进行赋值
public const int a=1;//常量不可以使用static关键字,常量必须在定义的时候进行初始化进行赋值
static test()//静态构造函数,类实例化之前调用执行,且只执行一次
{
b = 2;//因为是只读字段,所以只能在构造函数中进行初始化,且改只读字段为static类型,所以需在静态构造函数中进行赋值
}
void aa()
{
//a = 1;错误
//b=1;错误
}
}
}
常量的概念是一个包含不能修改的值的变量,常量是C#与大多数编程语言共有的,但是常量不必满足所有的要求。有时需要一些变量,其值不应改变,但在运行之前是未知的,C#为这种情形提供了另一个类型的变量:readonly字段。
readonly关键字比const灵活得多,允许把一个字段设置为常量,但可以执行一些运算,以确定它的初始值。其规则是:可以在构造函数中给readonly字段赋值,但不能在其他地方赋值。readonly字段还可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值,与const字段不同,如果要把readonly字段设置为静态,就必须显式声明。