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

转载 2004年08月29日 11:33: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

*/

Java语言程序设计基础篇原书第十版第六章编程练习题答案

第六章 方法的部分代码,会尽快补全
  • Tanganling
  • Tanganling
  • 2016年11月27日 20:25
  • 3589

java语言程序设计基础篇第十二章编程练习题

1package yongheng; import java.util.Scanner;public class Calculator { public static void main(Str...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年09月08日 22:21
  • 2520

java语言程序设计基础篇第十一章编程练习题

1package yongheng; import java.util.Scanner;public class Main { public static void main(String a...
  • gyhguoge01234
  • gyhguoge01234
  • 2016年09月08日 22:19
  • 2206

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

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

学习《.net框架 程序设计》学习笔记---委托(一)

一.认识委托      在.net框架中,回调函数任然像在非托管windows编程中一样有用和普遍。但是,.net框架为回调函数提供了一种称为委托(delegate)的类型安全的机制。      例如...
  • pandeveloper
  • pandeveloper
  • 2011年06月22日 13:13
  • 354

Microsoft .NET框架程序设计读书笔记(一)

1.什么是DLL hell?由什么引起的? DLL hell DLL灾难是由COM组件升级引起程序不能运行的情况。COM对象常常编译为dll文件。由于COM对象可以重用,这样多个程序可能使用同一...
  • shadowyelling
  • shadowyelling
  • 2012年04月12日 11:20
  • 706

《.NET框架程序设计(修订版)》--第三章 共享程序集 (1) 转载

学习笔记《.NET框架程序设计(修订版)》--第三章 共享程序集 (1)2004-12-27第二章里讲到对程序集的私有部署方式。这章里探讨创建可以被多个应用程序共同访问的程序集,即全局部署程序集(gl...
  • qq631145382
  • qq631145382
  • 2011年01月01日 23:40
  • 232

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

马云曾调侃说,“人算不如天算,天算不如云计算”。虽说是一句玩笑话,但也确实有一定的道理,自2006年开始,云计算发展至今已有11年,在技术和应用领域方面都取得了巨大的进展,它也逐渐成为了许多企业转型发...
  • benxiaohai529
  • benxiaohai529
  • 2017年12月24日 21:34
  • 50

Microsoft.NET框架程序设计(修订版)-中文版2

  • 2008年12月11日 20:58
  • 5.31MB
  • 下载

Microsoft.NET框架程序设计(修订版)-中文版.part1

  • 2008年12月11日 20:53
  • 14.31MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《.NET框架程序设计》第十章 属性
举报原因:
原因补充:

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