[C#]readonly字段

本文详细介绍了C#编程语言中readonly与const关键字的区别。const用于声明常量且必须在定义时初始化;readonly则允许在构造函数中进行计算并初始化字段。通过示例代码展示了如何使用这两种关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

readonly 和 const

  • const

  1. const 修饰的是一常量;
  2. const常量必须在定义的时候初始化,并其值不可以再改变;
  • readonly

  1. readonly允许把一个字段设置为常量,但还需要作一些计算,以确定他的初始值;
  2. readonly字段只可以构造函数内对其进行赋值;
    • 示例代码,如下:
using System;

namespace MyCSharpPro
{
    public class ReadOnlyTest
    {
        class SampleClass
        {
            public int x;
            // Initialize a readonly field
            public readonly int y = 25;
            public readonly int z;

            public SampleClass()
            {
                // Initialize a readonly instance field
                z = 24;
            }

            public SampleClass(int p1, int p2, int p3)
            {
                x = p1;
                y = p2;
                z = p3;
            }
        }

        static void Main()
        {
            SampleClass p1 = new SampleClass(11, 21, 32);   // OK
            Console.WriteLine("p1: x={0}, y={1}, z={2}", p1.x, p1.y, p1.z);
            SampleClass p2 = new SampleClass();
            p2.x = 55;   // OK
            Console.WriteLine("p2: x={0}, y={1}, z={2}", p2.x, p2.y, p2.z);
        }
    }
}
  1. readonly字段还可以是一个实例字段,
  2. readonly字段是静态字段时,必须显式的声明它;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值