本周学到很多C#关于Interface, Array的知识,在这里简单复习一下几个易混的地方,重在理解。

一、Interface

使用as来避免多态时没有接口的Exception:

Document [] folder  = new Document[5];
for (int i = 0; i < 5; i++)
{if (i % 2 == 0){folder[i] = new BigDocument("Big Document # " + i);}else{folder[i] = new LittleDocument("Little Document # " + i);}
}

如果Little Document没有继承Read(), 直接调用会有Exception。

foreach (Document doc in folder)
{IStorable isDoc = doc as IStorable;if (isDoc != null){isDoc.Read();}     else     {Console.WriteLine("IStorable not supported");        }
//…
}

这个例子简单明了

  显式实现接口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApplication2
{class Program{interface IStorable{void Read();void Write();}interface ITalk{void Talk();void Read();}public class Document : IStorable, ITalk{public void Read() { Console.WriteLine("Read"); }public void Write() { Console.WriteLine("Write"); }void ITalk.Read() { Console.WriteLine("Read of ITalk"); }public void Talk() { Console.WriteLine("Talk"); }}static void Main(string[] args){Document doc1 = new Document();doc1.Read();ITalk doc2 = doc1;doc2.Read();}}
}

1. 显式实现不用public

2. 显式调用需要新建ITalk对象(见代码)。

二、Array

  新建由(2,3)开始的3x5的数组:

int[] lengthsArray = new int[2] { 3, 5 };int[] boundsArray = new int[2] { 2, 3 };Array multiDimensionalArray = Array.CreateInstance(typeof(string), lengthsArray, boundsArray);

转载于:https://www.cnblogs.com/funcode/p/4394603.html

C#心得与经验(二)相关推荐

  1. Stocks:炒股相关的术语简介、炒股心得、经验

    目录 炒股相关的术语简介.炒股心得.经验 买进和卖出 价.量 炒股相关的术语简介.炒股心得.经验 买进和卖出 买进 卖出 一支股票横盘(横盘是指股价在一段时间内波动幅度小,无明显的上涨或下降趋势)4. ...

  2. 404计算机考研,404分考研过来人谈高分心得和经验

    时间过得飞快,09年考研的日子已经离我远去了,但那些为考研奔波的场景还历历在目,虽然辛苦,但在我得知成绩的那一刻,我知道努力是没有白费,付出得到了回报:我取得了404分的好成绩,其中政治考了82分,更 ...

  3. 腾讯专家分享:腾讯做业务监控的心得和经验

    转载地址:http://www.qcloud.com/blog/?p=497 分享主题: 腾讯业务立体化监控体系 1.介绍腾讯业务监控体系的层级构成: 2.用代表性的监控系统阐述每个监控层次的实现方法 ...

  4. 黑马程序员——c语言学习心得——函数传递二维数组

    黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.    变量 ...

  5. JavaScript学习笔记(十)——学习心得与经验小结

    JavaScript学习笔记(十)--学习心得与经验小结 目前我先列好提纲,利用每晚和周末的闲暇时间,将逐步写完 ^_^ 转载于:https://www.cnblogs.com/mixer/archi ...

  6. 计算机组装各个配件的选用,组装电脑各个配件装机心得与经验

    小编给大家之前带来了不少装机心得,但是没有那么详细到每个电脑配件的各个配件的心得与经验,让消费者购买组装电脑更放心,不会被那些奸商欺骗购买了一些翻新,二手货,更不会在装机的中途被那么无良商家换货的可能 ...

  7. 美学心得(第二百二十四集)罗国正

    美学心得(第二百二十四集) 罗国正 (2021年7月) 2987.清朝画家方士庶认为:绘画是"于天地之外,别构一种灵奇"."因心造境,以手运心"."山 ...

  8. 2021-07-06美学心得(第二百二十三集) 罗国正 (2021年6月)

    美学心得(第二百二十三集) 罗国正 (2021年6月) 2984.清朝画家.画论家布颜图,满洲镶白旗人,官绥远副都统,能画.善诗.好琴.他的主要美学观点如下: 1.绘画分"为人画" ...

  9. 分享一些我做笔记的经验(二)

    题图: Photo by Ilya Pavlov on Unsplash https://unsplash.com/photos/wbXdGS_D17U 在上一篇<分享一些我做笔记的经验(一)& ...

  10. SEO外链专员工作心得与经验技巧

    SEO外链专员工作心得与经验技巧 1:查找资源(论坛平台.博客等):(在之前刚打仗的时间找论坛资源都是通过一个论坛的情谊链接找到另一个论坛平台如许子.)由于都忽略了论坛的权重.pr等,导致收录不是很高 ...

最新文章

  1. Matlab与线性代数 -- 矩阵的重组1
  2. Log4j使用及配置
  3. 阻止表中出现重复项——SQL UNIQUE 约束
  4. 表的插入、更新、删除、合并操作_21_合并表中数据
  5. qemu 安装windows_BIOS+MBR启动引导安装双系统
  6. 有了CodinGame,玩着游戏就能学编程
  7. 前端学习(1810):前端调试之css装饰cursor
  8. Maven配置项目依赖使用本地仓库的方法汇总
  9. 求1+2+3+……+100的累加和。
  10. 配置文件keepalived.conf详解
  11. Python使用with语句:记录时间检查路径
  12. VC++动态链接库(DLL)编程深入浅出(四)(转)
  13. 《自己动手写操作系统》—— 工作环境搭建
  14. 【latex论文】IEEE论文模板的使用教程
  15. 十四五规划和2035年远景目标纲要 第五篇 加快数字化发展 建设数字中国
  16. 时统ptp_IEEE1588对时系统,PTP校时模块,PTP时钟服务器
  17. vs智能提示英文转为中文
  18. 去水印的手机APP哪个好用,怎么一键去水印
  19. 创建 Time Machine 时间机器的备份至 openmediavault 5(OMV 5) NAS 的 SMB/CIFS 共享文件夹
  20. PHP定时任务 - PHP自动定时循环执行任务实例代码

热门文章

  1. vue 方法获取返回值_vue.js - vuex异步提交,怎么获取返回数据
  2. java线程统一_Java线程结果不一致
  3. c语言getch在哪个头文件,用getch()需要头文件吗?
  4. apriori算法c++_关联分析——基于Apriori算法实现
  5. python 微信支付接口 详解_Python支付接口汇总大全(包含微信、支付宝等,长期更新、欢迎补充)...
  6. Opencv——查找并绘制凸包、凸包与轮廓的关系
  7. 调试JavaScript代码
  8. Java System类console()方法及示例
  9. stringwriter_Java StringWriter toString()方法与示例
  10. 串口通信的基本原理----STM32