【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)本质:持有一个或多个方法的对象:委托和典型的对象不同,执行委托实际上是执 ...
随机推荐
- Eclipse热部署JSP
项目中JSP修改,每次都要重新部署启动才生效,我真切记得以前都不是这样子的 本来应该只需要刷新页面就可以查看到最新的修改的了 和以前工作空间项目配置对比 唯一不同的是,我现在这个工作空间 ...
- WEB开发总结(持续更新。。。)
近期开始搞搞web的东西,觉得有必要把遇到的问题总结一下,就在这里当做个笔记本吧. 1.用maven建立的web工程,在运行的时候,右键找不到“Run on server”菜单: 可以在命令提示行中, ...
- ubuntu 运行android sdk 下的工具adb报bash: ./adb: No such file or directory
运行adb出现这种错误: bash: ./adb: No such file or directory 但adb确实存在. 可能1:你用的是64位的Linux,没装32位运行时库,安装 $ sud ...
- AIM Tech Round 3 (Div. 2) (B C D E) (codeforces 709B 709C 709D 709E)
rating又掉下去了.好不容易蓝了.... A..没读懂题,wa了好几次,明天问队友补上... B. Checkpoints 题意:一条直线上n个点x1,x2...xn,现在在位置a,求要经过任意n ...
- 谷歌官方刷新组件SwipeRefreshLayout
今天开始使用谷歌的SwipeRefreshLayout,会记下一些坑 1.手动调用setRefreshing(true)不会出现刷新动画 原因是:SwipeRefreshLayout indicato ...
- nyoj 236 心急的C小加
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- 三、servlet如何配置
生命周期 可以第一次请求时就实例化,也可以web容器启动时就实例化 WebServlet(loadOnStartUp=1) <loadOnStartUp.../> 直接收整型值,越小优先级 ...
- C# 条形码 生成函数 (Code 128 标准
C# 条形码 生成函数 (Code 128 标准参考:GB/T 18347-2001) 最近在做单据打印,发现客户要求用到条形码,在网上找了,发现只有一些条形码的标准,但打出来发现根本不能扫,还要加某 ...
- SQLite使用教程4 创建数据库
http://www.runoob.com/sqlite/sqlite-create-database.html SQLite 创建数据库 SQLite 的 sqlite3 命令被用来创建新的 SQL ...
- Objective-C 调用C++,C
1. 建立一个C++类 2. 写一个Adaptor的Objective-C类 3. 在其他Objective-C的逻辑中调用Adaptor类. 1.C++类 // // CPlusPlusClass. ...