当前位置: 首页 > article >正文

C# 封装数据 详解

除了签名讲过的几种特殊封装方式,还有两种字段修饰符:const(声明局部变量时见过)和readonly

1.1 const(常量字段)

常量字段是不可更改的值,在编译时就已经确定,并且在整个程序运行期间保持不变。

设计规范:

(1)要为永远不变的值使用常量字段;

(2)不要为将来会发生变化的值使用常量字段。

例子:

public static class MathConstants
{
    // 数学常量 π
    public const double Pi = 3.14159;

    // 自然对数的底 e
    public const double E = 2.71828;
}

// 使用MathConstants类中的常量字段
class Program
{
    static void Main(string[] args)
    {
        double radius = 5;
        double area = MathConstants.Pi * radius * radius;
        Console.WriteLine($"Circle Area (radius=5): {area}"); // 输出: Circle Area (radius=5): 78.53975

        double exponential = Math.Pow(MathConstants.E, 2);
        Console.WriteLine($"Exponential of e^2: {exponential}"); // 输出: Exponential of e^2: 7.38905609893065
    }
}

1.2readonly

readonly修饰符只能用于字段(不能用于局部变量),它指出字段值只能从构造函数中更改,或在声明通过初始化器指定。

readonly字段可以在声明时或在构造函数中初始化,并且其值在对象创建后不能被修改(只读)。

例子:

public class MyClass
{
    // 在声明时初始化
    public readonly int MaxValue = 100;

    // 在构造函数中初始化
    public readonly string Name;

    public MyClass(string name)
    {
        Name = name;
    }
}

虽然constreadonly都可以用来定义不可变的字段,但它们有一些重要的区别:

特性constreadonly
初始化时机必须在声明时初始化可以在声明时或构造函数中初始化
编译时常量
作用范围编译时常量,值会在使用的地方直接替换运行时常量,值在对象创建时确定
适用类型只能是基本数据类型、枚举类型或null可以是任何类型

http://www.kler.cn/a/590007.html

相关文章:

  • Prompt Learning Awesome
  • 东隆科技携手PRIMES成立中国校准实验室,开启激光诊断高精度新时代
  • NLP高频面试题(三)——普通RNN的梯度消失和梯度爆炸问题
  • Dify 搭建
  • css实现报警特效
  • Unity插件-适用于画面传输的FMETP STREAM使用方法(二)组件介绍
  • 【蓝桥杯】1124修建公路1(Kruskal算法)
  • 机器学习之激活函数
  • 文件解析漏洞靶场---解析详解
  • 利用hexo+github部署属于自己的个人博客网站(2025年3月所写)
  • 实现电商网站商品检索
  • UBuntu虚拟机上的redis服务突然消失了
  • 图形编辑器基于Paper.js教程25:材料测试矩阵功能的实现
  • [算法] 贪心--矩阵消除游戏
  • MyBatis SqlSession 是如何创建的? 它与 SqlSessionFactory 有什么关系?
  • 【Android】ListView控件在进入|退出小窗下的异常
  • 【xv6操作系统】页表与写时拷贝解析及相关实验设计
  • TiDB删除大量数据需要注意什么
  • RabbitMQ支持的复杂的消息交换模式
  • HTML中滚动加载的实现