c#接口
//接口中方法 属性 事件等默认都是public 不允许用修饰符修饰
public interface IEventInterFace
{
string this[int index] { get; set; }//索引器
List<string> MyList { get; set; } //属性
string Name { get; set; }//属性
event EventHandler MyEventHandler;//事件
void Meth();//方法
} public class InterFaceTestClass : IEventInterFace
{
public string this[int index]//索引器实现
{ get
{
if (index > && index <= MyList.Count - )
return MyList.ToArray()[index];
return "超出边界";
}
set
{
MyList[index] = value;
}
}
public List<string> MyList { get; set; } //属性实现
public string Name { get; set; }//属性实现
public void Meth()
{
Console.WriteLine("该类自己的Meth方法");
}
void IEventInterFace.Meth()
{
Console.WriteLine("显示实现方法,上面的Meth作为该类自己的方法。该方法不能用修饰符修饰 默认为private");
}
public event EventHandler MyEventHandler;//事件实现 public void InvokeMyEventHandler()//调用事件的方法
{
MyEventHandler(null, null);
}
}
class Program
{
public static void MyMethed(object sender, EventArgs e)
{
Console.WriteLine("MyMethed");
} static void Main(string[] args)
{ var myClass = new InterFaceTestClass();
myClass.Meth();//调用该类自己的Meth方法
IEventInterFace face = myClass;
face.Meth();//调用实现接口的Meth方法
myClass.MyList = new List<string>() { "a", "b", "c" };
var str = myClass[];//索引器用法
Console.WriteLine(str); myClass[] = "bb";
myClass.MyEventHandler += new EventHandler(MyMethed);//事件添加函数 myClass.InvokeMyEventHandler(); }
}
c#接口的更多相关文章
- C#类型的转换:Converter<TInput, TOutput> 委托的使用
Converter<TInput, TOutput> 委托 表示将对象从一种类型转换为另一种类型的方法. 此委托由 Array 类的 ConvertAll<TInput, TOutp ...
- Array.ConvertAll<TInput, TOutput> 数组相互转化方法
有个需求,把char数组转换为int数组,然后噼里啪啦就弄了这样一堆代码: public static int[] CharArrToIntArr(char[] charArr) { int[] in ...
- C#高级编程笔记 Day 5, 2016年9月 13日 (泛型)
[重点]泛型:有了泛型,就可以创建独立于被包含类型的类和方法了.我们不必给不同的类型编写功能相同的许多方法和类,只创建一个方法或类即可,以下是泛型的特点:性能.类型安全性.二进制代码重用.代码的扩展. ...
- 最近面试的题目(WEB、Service、SQL、JavaScript)
整理一下最近面试被问到的主要题目.由于本人主要是做WEB及WEB SERVICE这块,使用的语言主要是C#,数据库主要用到的也是MSSQL.所以就分成这些块来整理(有些是在面试之后才意识到回答不对), ...
- C#集合--数组
Array类是所有一维和多维数组的隐式基类,同时也是实现标准集合接口的最基本的类型.Array类实现了类型统一,因此它为所有数组提供了一组通用的方法,不论这些数组元素的类型,这些通用的方法均适用. 正 ...
- 使用 IL 实现类型转换
在之前的文章中,我大致介绍过一些类型间的隐式和显式类型转换规则.但当时并未很仔细的研究过<CSharp Language Specification>,因此实现并不完整.而且只部分解决了类 ...
- C#泛型(C#_编程指南)CSDN学习整理笔记
1.1. 泛型概述 2.0版C#语言和公共语言运行时(CLR)中增加了泛型.泛型将类型参数的概念引入.NETFramework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定 ...
- 关于C#泛型列表List<T>的基本用法总结
//示例代码如下:using System;using System.Collections.Generic;using System.Collections.ObjectModel;namespac ...
- Linq/List/Array/IEnumerable等集合操作
来源:http://www.cnblogs.com/liushanshan/archive/2011/01/05/1926263.html 目录 1 LINQ查询结果集 1 2 Sy ...
- C#集合基础与运用
C#集合基础与运用 C#集合基础与运用 1. 集合接口与集合类型............................................... 1 (1) 集合的命名空间..... ...
随机推荐
- Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
目录 前言 现象 源码分析 实战例子 总结 参考资料 前言 今天研究了一下tomcat上web.xml配置文件中url-pattern的问题. 这个问题其实毕业前就困扰着我,当时忙于找工作. 找到工作 ...
- 年底发福利了——分享一下我的.NET软件开发资源
最近建了一个.NET软件开发资源的360网盘共享群,把收集的一些.NET软件开发资源分享给大家,也欢迎大家把好的东东分享一下. 资源主要有:开发工具.控件资源.书籍教程.网页设计.源码资源几大类,也希 ...
- 【转】一些 SQLite技巧
部分来源于网络 SQLite 删除重复行 需求:现存在一张表tender_to_detailedlist,然后里面的列tender_id和detailedlist_id具有相同的数据且不确定相同数据的 ...
- 跟我从零基础学习Unity3D开发--Unity3D开发必备神器(Visual Studio Tools for Unity)
开发Unity3D程序你用的什么IDE呢? 1.MonoDevelop 2.VS 可能你的回答是这样的,我用的vs写代码MonoDevelop来做调试.这时有同学就会反驳了傻X不知道用unityVS吗 ...
- FPGA与simulink联合实时环路系列—开篇
FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...
- 【OpenJudge 1665】完美覆盖
http://noi.openjudge.cn/ch0405/1665/?lang=zh_CN 状压水题,手动转移 #include<cstdio> #include<cstring ...
- 分布式数据库Hbase
HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HBase是Goog ...
- html页面输入框input的美化
input输入框是网页必不可少的组件,可是每个浏览器对于输入框的显示样式各有不同 例如: 上图分别就是谷歌浏览器和IE浏览器自带显示的输入框,样式也不足人意,所以大多都会自己写样式 以下是一个简 ...
- <<< 怎么开启服务器的3398端口
拿到shell之后对方没有开启3389端口... 2000的话,需要传3389.exe运行才行. 2003的话方法就多了,可以实现一句话开3389: reg add "HKEY_LOCAL_ ...
- 问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势
问你觉得iOS7为什么要扁平化,扁平化和之前的比有什么优势 苹果首席设计师谈为何会在iOS上选择扁平风格http://ndnews.oeeee.com/html/201306/11/71078.htm ...