[《.net框架程序设计》]第十章 属性

原创 2004年07月02日 14:49:00

第十章 属性

摘要:

本章讨论C#中的 属性 索引器

一、属性

        分为静态属性、实例属性和属性

l         避免直接访问类型字段或使用烦琐的访问器方法进行访问

l         很好的实现了类型的数据封装,如:改变字段而维持属性的意义对用户是透明的

l         代码量小,运算量小的操作才使用属性,否则使用方法调用更合适

 

二、索引器

l         可有多个重载的索引器,只要参数列表不同即可

l         可通过应用System.Runtime.CompilerServices.IndexerNameAttribute特性改变编译器为索引器生成的方法名(缺省使用get_Item(…)set_Item(...)

l         不能通过上述改变方法名的办法来定义多个参数列相同而仅名称不同的索引器

l         没有所谓“静态索引器”

 

注:在属性或索引器中添加对参数或value值得判定有助于保证程序的完整性

 

一个简单的示例:

using System;

class IndexerTest

{

       private static string[] strArr = new string[5];

 

       IndexerTest()

       {

              for(int i = 0; i < 5; i ++)

              {

                     strArr[i] = i.ToString();

              }

       }

 

       public string this[Int32 nIndex]

       {

              get{

                     return strArr[nIndex];

              }    

             

              set{

                     strArr[nIndex] = value;

              }    

       }

      

       //提供不同的参数列进行重载索引器

       public string this[byte bIndex]

       {

              get{

                     return strArr[bIndex];

              }

             

              set{

                     strArr[bIndex] = (string)value;

              }    

       }

      

       //只读属性

       public string[] StrArr

       {

              get{

                     return strArr;

              }

       }

      

       public static void Main()

       {

              IndexerTest it = new IndexerTest();

             

              it[1] = "Hello"; //利用索引器进行写操作

              foreach(string str in it.StrArr)

              {

                     Console.WriteLine(str); 

              }

       }

}

/*

运行结果:

0

Hello

2

3

4

*/

《.NET框架程序设计》第十章 属性

第十章 属性 摘要:本章讨论C#中的 属性 及 索引器一、属性        分为静态属性、实例属性和虚属性l         避免直接访问类型字段或使用烦琐的访问器方法进行访问l         很...
  • Ninth
  • Ninth
  • 2004年08月29日 11:33
  • 1357

终于把Microsoft .NET框架程序设计(修订版)看完了

这本书是由windows & .Net专家Jeffrey Richter写的,现在最新的是第二版CLR Via C#。虽然内容差不了多少,不过俺还是买了。:D。此书由李建忠老师翻译的。   Jeff...
  • kisserLeon
  • kisserLeon
  • 2006年11月28日 19:09
  • 1860

.NET框架程序设计——体系结构

谈到.NET,相信对于大多数初学者而言,都会感觉比较乱、比较迷茫,什么ASP.NET、VB.NET、VC.NET、ADO.NET、.NETFramework 等等概念,搞的我们晕头转向的,他们之间到底...
  • dongyue786
  • dongyue786
  • 2014年10月15日 15:47
  • 1980

.net框架程序设计读书笔记二(Microsoft .net 框架开发平台体系架构)

第一章:Microsoft .net 框架开发平台体系架构    本章的目标:对.net框架体系架构有一个总体的认识,并对.net框架中出现的一些新的技术和术语有一个基本的了解。 1.1 将源代码编译...
  • cwbboy
  • cwbboy
  • 2004年05月31日 16:57
  • 988

java程序设计基础_陈国君版第五版_第十章例题

java程序设计基础_陈国君版第五版_第十章例题 import java.io.*; public class Main10_1 { public static void main(String ...
  • gaoenbin626
  • gaoenbin626
  • 2016年03月13日 14:59
  • 1033

windows程序设计 例题解析 MENUDEMO.C

/*-----------------------------------------    MENUDEMO.C -- Menu Demonstration                  (...
  • zhongguo_fj
  • zhongguo_fj
  • 2012年12月03日 19:17
  • 344

《Erlang 程序设计》练习答案 -- 第十二章 并发编程

% (1).编写一个start(AnAtom, Fun)函数来把spawn(Fun)注册为AnAtom。 % 确保当两个并行的进程同时执行start/2时你的程序也能正确工作。 % 在这种情况下,必须...
  • wwh578867817
  • wwh578867817
  • 2015年11月17日 13:33
  • 1057

J2EE与.NET技术架构的比较

一、J2EE简介 J2EE体系结构图:                          1.组件-容器模型 J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务...
  • kanglix1an
  • kanglix1an
  • 2014年06月04日 19:36
  • 8262

(.net)框架的程序设计

.net 框架程序设计: 1.什么是模式? 模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。 Alexander给出的经...
  • mghc00100
  • mghc00100
  • 2012年07月18日 20:08
  • 371

《.net框架程序设计》学习

前言Microsoft .net平台组成 底层操作系统:windows:--Microsoft .NET Passport XML Web服务支持--即时消息通知应用程序--.NET 企业服务器: l...
  • shanliwa
  • shanliwa
  • 2007年08月30日 01:43
  • 1725
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[《.net框架程序设计》]第十章 属性
举报原因:
原因补充:

(最多只允许输入30个字)