第三部分 类和结构3---------------

将字段定义为const是很有用的,因为它明确表达了程序员的意图------------即此字段包含不可变的值.但是,只有在编译时知道字段值的情况下才能这么做.所以,如果在运行之前不知道字段值,而且一旦字段被初始化就不应该再修改,那么程序员应该怎么做?这个问题在其他语言中通常无法解决,但是c#语言的设计人员用只读字段来解决了它.

在使用readonly关键字定义字段时,可以在一个地方设置字段值---构造器.此后,类本身或类的客户都不能修改此字段.假设应用程序需要跟踪当前工作站的IP地址.你不希望使用const解决这个问题,因为这需要对IP地址进行硬编码,而且如果工作站是以动态方式获得IP地址的,那么这种技术不起作用.此时就需要使用只读的运行时字段:

  using System;

  using System.Net;

  class Workstation

             {

                       IPAddress ipAddress=Dns.Resolve(HostName).AddressList[0];

                       IPAddressString=ipAddress.ToString();

             }

            public const string HostName="cosette";

            public readonly string IPAddressString;

 }

class GetIpAddress

   {          

               public static void Main()

               {

                   Workstation workstation=new Workstation();

                   Console.WriteLine("The IP address for  '{0}' is {1}", Workstation.HostName,Workstation.IPAddressString);

               }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值