【C#4.0图解教程】笔记(第9章~第18章)



|
try
{ }
catch (IndexOutOfRangeException e)
{ }
finally
{ } |



































|
using System;
public class MyTCEventArgs : EventArgs //继承EventArgs类,EventArgs是包含事件数据的类的基类
{
public string Message;
public MyTCEventArgs(string s)//构造函数
{
Message = s;
}
}
public class MyTimerClass
{
public event EventHandler<MyTCEventArgs> Elapsed;//泛型委托事件声明
private void OnOneSecond(object source, EventArgs args)//发起事件的代码
{
if (Elapsed != null)//判断事件是否不为空
{
MyTCEventArgs mtcea = new MyTCEventArgs("message from ononesecond");
Elapsed(source, mtcea);//触发事件,它有两个参数是由声明时EventHandler委托决定的,它是一个.NET BCL使用的预定义的用于标准事件的委托.所以一般都是两个参数
}
}
private System.Timers.Timer MyprivateTimer; //私有计时器
public MyTimerClass()//构造函数
{
MyprivateTimer = new System.Timers.Timer();//初始化私有计时器
//下面语句将上面的OnOneSecond设置成了类计时器的Elapsed事件的事件处理程序.
//它与我们上面声明的Elapsed事件完全无关.
MyprivateTimer.Elapsed += OnOneSecond;//附加事件处理程序.
MyprivateTimer.Interval = 1000;//每秒调用一次.
MyprivateTimer.Enabled = true;
}
}
class ClassA
{
public void TimerHandlerA(object sourse, MyTCEventArgs args)//事件处理程序,注意两个参数
{
Console.WriteLine("Class A Message: {0}", args.Message);
}
}
class Program
{
static void Main()
{
ClassA ca = new ClassA();
MyTimerClass mc = new MyTimerClass();
mc.Elapsed += new EventHandler<MyTCEventArgs>(ca.TimerHandlerA);//注册事件处理程序
Console.ReadKey();
}
} |


|
using System;
interface IIfc1
{
void printout(string s);
}
class A:IIfc1
{
public void printout(string s)
{
Console.WriteLine("Calling throught From A:{0}", s);
}
}
class B : IIfc1
{
public void printout(string s)
{
Console.WriteLine("Calling throught From B:{0}", s);
}
}
class Program
{
static void Main()
{
A a = new A();
B b = new B();
a.printout("A");
b.printout("B");
IIfc1 ifc = (IIfc1)a;
ifc.printout("interface");
IIfc1 ifc2 = b as IIfc1;//使用as运算符会更好,因为as运算符转换没有实现该接口的类时,返回NULL而不会抛出异常,强制转换则会.
ifc2.printout("inferface2");
Console.ReadKey();
}
} |










【C#4.0图解教程】笔记(第9章~第18章)的更多相关文章
- 【读书笔记】关于《精通C#(第6版)》与《C#5.0图解教程》中的一点矛盾的地方
志铭-2020年2月8日 03:32:03 先说明,这是一个旧问题,很久很久以前大家就讨论了, 哈哈哈,而且先声明这是一个很无聊的问题,
- linux内核分析第3章&第18章读书笔记
linux内核分析第3章&第18章读书笔记 第三章 进程管理 进程:处于执行期的程序(目标码存放在某种存储介质上) 包含资源:可执行程序代码,打开的文件,挂起的信号,内核内部数据,处理器状态, ...
- 【C#4.0图解教程】笔记(第19章~第25章)
第19章 泛型 1.泛型概念 泛型提供了一种更准确地使用有一种以上的类型的代码的方式. 泛型允许我们声明类型参数化的代码,我们可以用不同的类型进行实例化. 泛型不是类型,而是类型的模板. 2.声明 ...
- 【C#4.0图解教程】笔记(第1章~第8章)
第1章 C#和.NET框架 1..NET框架的组成 .NET框架由三部分组成(严格来说只有CLR和FCL(框架类库)两部分),如图 执行环境称为:CLR(公共语言运行库),它在运行期管理程序的执行. ...
- C#4.0图解教程 - 第24章 反射和特性 – 2.特性
1.特性 定义 Attribute用来对类.属性.方法等标注额外的信息,贴一个标签(附着物) 通俗:给 类 或 类成员 贴一个标签,就像航空部为你的行李贴一个标签一样 注意,特性 是 类 和 类的成员 ...
- C#4.0图解教程 - 第24章 反射和特性 - 1.反射
24.1 元数据和反射 有关程序及类型的数据被成为 元数据.他们保存在程序集中. 程序运行时,可以查看其他程序集或其本身的元数据.一个运行的程序查看本身元数据或其他程序的元数据的行为叫做 反射. 24 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- 《C#图解教程》读书笔记之五:委托和事件
本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.委托初窥:一个拥有方法的对象 (1)本质:持有一个或多个方法的对象:委托和典型的对象不同,执行委托实际上是执 ...
随机推荐
- 【转】Bash中的shopt选项
set选项与shopt选项是两组不同的内容,用set -o和shopt -p可以分别查看两个组所有的打开和关闭的条目, 在默认状态下,有些是打开的,有些是关闭的,shopt各选项随着bash版本的更新 ...
- 【Kafka入门】Kafka基础结构和知识
基本概念的总结 在基本的Kafka架构中,producer将消息发布到Kafka话题中,一个Kafka话题通常指消息的类别或者名称,Kafka话题被集群中一个充当Kafka server角色的 bro ...
- java@ What are C++ features missing in Java
Following features of C++ are not there in Java. No pointers No sizeof operator No scope resolution ...
- Java异常的面试问题及答案-Part 1
本文由 ImportNew - 韩远青 翻译自 Journaldev. Java提供了一个健壮的.面向对象的方法来处理出现异常,称为Java异常处理.我以前写过一篇长文章来介绍Java异常处理,今天我 ...
- hdoj 5194 DZY Loves Balls【规律&&gcd】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5194 题意:给你n个黑球,m个白球,每次从中随机抽取一个,如果抽到黑球记为1如果抽出来白球记为0,让你 ...
- 修改HTMLTestRunner模板
---恢复内容开始--- 1.修改bug(passCase不标色和加粗) style = (n == 2 and 'errorCase') or (n == 1 and 'failCase') or ...
- 【Stage3D学习笔记续】山寨Starling(七):一般优化方法简介及混合模式
关于事件的优化: 遍历注册的事件由foreach改变为fori,在大量数据遍历时会有提升: 事件池优化: 所有的事件都使用一个对象池进行保存,而不是使用到时进行创建,使用EventDispatcher ...
- flex开发小技巧集锦
关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...
- Css3 display用法
display 属性规定元素应该生成的框的类型. display:none 此元素不会被显示 display:block 此元素将显示为块级元素,此元素前后会带有换行符 display:inl ...
- java中的AES 256算法遇到 Illegal key size or default parameters错的解决办法
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...