当前位置: 首页 > 编程日记 > 正文

C# 属性、索引

属性(property:

public string Name
{get{return _name;}set{_name = value;}
}    

简写为:

public string Name { set; get;}

 

索引器(index):

索引器为C#程序语言中泪的一种成员,它是的对象可以像数组一样被索引,使程序看起来更直观,更容易编写。

索引器和数组比较:

(1)索引器的索引值(Index)类型不受限制

(2)索引器允许重载

(3)索引器不是一个变量

索引器和属性的不同点

(1)属性以名称来标识,索引器以函数形式标识

(2)索引器可以被重载,属性不可以

(3)索引器不能声明为static,属性可以

要声明类或结构上的索引器,请使用this关键字,例如:

public int this[int index] //声明索引器

{// get and set 访问

}

索引器的修饰符有:new、public、protected、internal、private、virtual、sealed、override、abstract和extern。

当索引器声明包含extern修饰符时,称该索引器为外部索引器。因为外部索引器声明不提供任何实际的实现,所以它的每个访问器声明都由一个分号组成。

索引器的签名由其形参的数量和类型组成。它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名。

索引器值不归类为变量;因此,不能将索引器值作为ref或out参数来传递。

索引必须是实例成员。

索引器使用示例:

using System;
class IndexerRecord
{private string [] data = new string [6];private string [] keys  = {"Author", "Publisher", "Title","Subject", "ISBN", "Comments" }; //注:程序中用了两种方法来索引://一是整数作下标,二是字符串(关键词名)作下标public string this[ int idx ]{set{if( idx >= 0 && idx < data.Length )data[ idx ] = value;}get{if( idx >= 0 && idx < data.Length )return data[ idx ];return null;}}public string this[ string key ]{set{int idx = FindKey( key );this[ idx ] = value;}get{return this[ FindKey(key) ];}}private int FindKey( string key ){for( int i=0; i<keys.Length; i++)if( keys[i] == key ) return i;return -1;}static void Main(){IndexerRecord record = new IndexerRecord();record[ 0 ] = "马克-吐温";record[ 1 ] = "Crox出版公司";record[ 2 ] = "汤姆-索亚历险记";Console.WriteLine( record[ "Title" ] );Console.WriteLine( record[ "Author" ] );Console.WriteLine( record[ "Publisher" ] );Console.ReadKey(true);}
}

相关文章:

分享几段祖传的 Python 代码,拿来直接使用!

作者 | 周萝卜来源 | 萝卜大杂烩今天分享几段工作生活中常用的代码&#xff0c;都是最为基础的功能和操作&#xff0c;而且大多还都是出现频率比较高的&#xff0c;很多都是可以拿来直接使用或者简单修改就可以放到自己的项目当中日期生成很多时候我们需要批量生成日期&#xf…

JVM——Java虚拟机架构

Java虚拟机&#xff08;Java virtualmachine&#xff09;实现了Java语言最重要的特征&#xff1a;即平台无关性。 平台无关性原理&#xff1a;编译后的 Java程序&#xff08;.class文件&#xff09;由 JVM执行。JVM屏蔽了与具体平台相关的信息&#xff0c;使程序可以在多种平台…

深入理解PHP之数组遍历

本文地址: http://www.laruence.com/2009/08/23/1065.html 经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: <?php$arr[laruence] huixinchen;$arr[yahoo] 2007;$arr[baidu] 2008;foreach ($arr as $key >…

Github 年度最受欢迎的 TOP30 Python 项目,超值

作者 | 俊欣来源 | 关于数据分析与可视化今天小编整理归纳了2021年Github上面最受欢迎的30个Python项目&#xff0c;帮助大家在打磨技术与提升自我上面更进一步。通过代码来获取Github官网有开源的接口&#xff0c;因此数据的获取也就方便了许多&#xff0c;代码如下url https…

Linux字符设备驱动程序的框架(新写法)

这是老版本内核的的Linux驱动注册函数写法&#xff1a; major register_chrdev(0, "hello", &hello_fops); /* (major, 0), (major, 1), ..., (major, 255)都对应hello_fops */ 新版本内核Linux驱动注册函数写法#define MAJOR(devid) ((unsigned int) ((devid…

将一个普通的java项目转化为maven项目

在学习Spring事务时&#xff0c;我参考的书的源码不是maven项目&#xff0c;整本书依赖的100多个jar包都在一个文件夹里&#xff0c;我本来对spring每个模块的学习源码都放在一个Github仓库里&#xff0c;每一个项目都是maven项目&#xff0c;这样想要将项目转化为maven项目&am…

深入理解PHP内存管理之谁动了我的内存

本文地址: http://www.laruence.com/2011/03/04/1894.html转载请注明出处首先让我们看一个问题: 如下代码的输出, var_dump(memory_get_usage());$a "laruence";var_dump(memory_get_usage());unset($a);var_dump(memory_get_usage()); 输出(在我的个人电脑上, 可能…

蓝懿教育九月二十七日记录

将VIew移动做成动画效果 这种动画效果没有中间的位移可以添加动画的View属性center&#xff0c;frame&#xff0c;alpha&#xff0c;transform , backgroundColor//继续做消失的动画[UIView animateWithDuration:1 animations:^{iv.alpha 0;} completion:^(BOOL finished) …

新年快到了,让我们一起用 Python 编织中国结吧

作者 | FrigidWinter来源 | CSDN博客新年快到了&#xff0c;今天博主教大家用Python编织中国结~中国结的组成部分中国结是一种手工编织工艺品&#xff0c;它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。因为其外观对称精致&#xff0c;可以代表汉族悠久的历史&#x…

pwa+webpack,初探与踩坑

0.前言 我们都知道pwa是一个新技术.&#xff0c;依靠缓存&#xff0c;离线了还能正常跑&#xff0c;而且秒开。我把以前原生写的小游戏迁移到react&#xff0c;再迁移到webpackreact&#xff0c;最后再升级到pwa。具体介绍不多说&#xff0c;我们开始撸吧。 1.webpack webpack攻…

linux sar 命令详解

sar&#xff08;System Activity Reporter系统活动情况报告&#xff09;是目前 Linux 上最为全面的系统性能分析工具之一&#xff0c;可以从多方面对系统的活动进行报告&#xff0c;包括&#xff1a;文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程…

PHP底层工作原理

简介 先看看下面这个过程&#xff1a; 我们从未手动开启过PHP的相关进程&#xff0c;它是随着Apache的启动而运行的&#xff1b;PHP通过mod_php5.so模块和Apache相连&#xff08;具体说来是SAPI&#xff0c;即服务器应用程序编程接口&#xff09;&#xff1b;PHP总共有三个模…

使用 Pandas、Jinja 和 WeasyPrint,轻松创建一个 PDF 报表

作者 |周萝卜来源 |萝卜大杂烩我们都知道&#xff0c;Pandas 擅长处理大量数据并以多种文本和视觉表示形式对其进行总结&#xff0c;它支持将结构输出到 CSV、Excel、HTML、json 等。但是如果我们想将多条数据合并到一个文档中&#xff0c;就有些复杂了。例如&#xff0c;如果要…

通过Excel生成批量SQL语句

项目中有时会遇到这样的要求&#xff1a;用户给发过来一些数据&#xff0c;要我们直接给存放到数据库里面&#xff0c;有的是Insert&#xff0c;有的是Update等等&#xff0c;少量的数据我们可以采取最原始的办法&#xff0c;也就是在SQL里面用Insert into来实现&#xff0c;但…

抵御「黄貂鱼」攻击,谷歌使出禁用2G「大招」

整理 | 于轩 责编 | 张红月出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;你还在使用2G吗&#xff1f;相信很多人第一反应都是“怎么可能&#xff1f;”确实&#xff0c;现在绝大数人都在使用技术成熟的4G网络&#xff0c;以及更高网速的5G。但是你有注意到…

Crontab运行php脚本

首先&#xff0c;确认 PHP 可执行文件的位置 —— 对于大多数 Linux 系统&#xff0c;几乎肯定是 /usr/bin/php。如果不确定其位置&#xff0c;请在命令行中键入 which php 并查看响应内容。 其次&#xff0c;键入以下代码&#xff0c;确保将 /usr/bin/php 替换为 PHP 可执行文…

iOS原生如何加载HTML中img标签的图片

原文出自&#xff1a;iOS原生如何加载HTML中img标签的图片 前言 最近iOS App项目中使用Webview加载H5页面比较多&#xff0c;也有不少朋友经常问到这个问题&#xff0c;在这里我也学习学习如何通过iOS原生的方式来加载H5页面中的图片然后让webview显示图片。 相信有很多朋友也…

Python3 的urllib实例

在Python3中合并了 urllib 和 urllib2&#xff0c; 统一命名为 urllib 了&#xff0c;我觉得这样更加合理了。让我们可以像读取本地文件一样读取WEB上的数据。封装了一个类&#xff0c;供以后方便使用吧&#xff01;并附带有许多的应用实例。 一、封装的类 #!/usr/bin/env pyth…

Java中Filter、Servlet、Listener的学习

1、Filter的功能filter功能&#xff0c;它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chainin…

CentOS 6安装DHCP

#wget ftp://ftp.isc.org/isc/dhcp/dhcp-4.2.3/dhcp-4.2.3.tar.gz #tar xvzf dhcp-4.2.3.tar.gz# cd dhcp-4.2.3#./configure #make #make install

小米AI实验室六篇论文获ICASSP2022收录,多模态语音唤醒挑战赛夺冠

1月22日&#xff0c;全球语音、声学顶级会议ICASSP 2022公布了论文入选名单&#xff0c;小米AI实验室6篇学术论文被接收。小米“自由说”系统在MISP&#xff08;基于多模态信息的语音处理&#xff09;挑战赛中荣获多模态语音唤醒第一名和多模态语音识别第二名&#xff0c;并受邀…

React + Koa 实现服务端渲染(SSR)

⚛️React是目前前端社区最流行的UI库之一&#xff0c;它的基于组件化的开发方式极大地提升了前端开发体验&#xff0c;React通过拆分一个大的应用至一个个小的组件&#xff0c;来使得我们的代码更加的可被重用&#xff0c;以及获得更好的可维护性&#xff0c;等等还有其他很多…

11 款可替代 top 命令的工具!

‍‍作者 | JackTian来源 | 杰哥的IT之旅在 Linux 环境下 top 命令都不陌生&#xff0c;它以实时动态的方式查看系统的整体运行情况&#xff0c;综合了多方信息监测系统性能和运行信息的实用工具&#xff0c;通过 top 命令所提供的互动式界面&#xff0c;可以用热键来进行管理。…

几个重要的RFC

RFC目录 权威无须解释 http://www.ietf.org/rfc/RFC中文目录http://man.chinaunix.net/develop/rfc/default.htm几个常用的RFC参考&#xff1a; RFC1945 超文本传输协议--HTTP/1.0 RFC2616超文本传输协议--HTTP/1.1 对 RFC2068的补充RFC3920可扩展的消息和出席信息协议 (XMPP)…

iOS开发笔记-两种单例模式的写法

iOS开发笔记&#xff0d;两种单例模式的写法 单例模式是开发中最常用的写法之一&#xff0c;iOS的单例模式有两种官方写法&#xff0c;如下&#xff1a; 不使用GCD #import "ServiceManager.h"static ServiceManager *defaultManager;implementation ServiceManager(…

流式大数据处理的三种框架:Storm,Spark和Samza

2019独角兽企业重金招聘Python工程师标准>>> 许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分别进行简单介绍&#xff0c;然后尝试快速、高度概述其异同。 Apache Storm 在Storm中&#xff0c;先要设计一个用于实时计算的图状结构…

CentOS用yum安装X Window

安装X图形界面系统yum list 列出所有可安装的软件包 可以通过 yum grouplist 来查看可能批量安装哪些列表 先装X windows #yum groupinstall X Window System -y 安装GNOME桌面环境#yum groupinstall GNOME Desktop Environment -y 安装KDE桌面环境#yum groupinstall KDE (K D…

Oracle VDI 安装

为什么80%的码农都做不了架构师&#xff1f;>>> 你可以在这里找到本文的原文。 虽然说Oracle已经停止了VDI的开发&#xff0c;之后支持服务业很快停止了。但是&#xff0c;作为经典的桌面虚拟化产品&#xff0c;还是值得研究一番。虽然Oracle VDI的文档已经写的很详…

Python 写了一个网页版的「P图软件」,惊呆了!

作者 | 小欣来源 | Python爱好者集中营今天是开工第一天&#xff0c;这篇文章可以算作是虎年的第一篇干货技术类文章了&#xff0c;今天小编用Python做了一个网页版的“P图软件”&#xff0c;大致的流程在于我们可以将上传的照片进行黑白处理、铅笔素描处理、模糊化处理等一系列…

Template mode HTML5 has not been configured

#thymeleafspring.thymeleaf.prefixclasspath:/templates/spring.thymeleaf.suffix.htmlspring.thymeleaf.cachefalsespring.thymeleaf.content-typetext/htmlspring.thymeleaf.enabledtruespring.thymeleaf.encodingUTF-8spring.thymeleaf.modeHTML5 解决办法&#xff1a;注释…