C#语法练习(14): 类[六]

using System;

class MyClass
{
   private int FNum;

   public delegate void MyDelegate(int n); /* 委托是事件的前提 */
   public event MyDelegate MyEvent;    /* 用 event 关键字根据已有的委托声明事件 */

   /* 假如是在给 Num 赋值时触动事件 */
   public int Num
   {
     get { return FNum; }
     set
     {
       FNum = value;
       if (MyEvent != null) MyEvent(FNum);
     }
   }
}

class Program
{
   static void Main()
   {
     MyClass obj = new MyClass();

     /* 给事件关联上在下面定义的方法: Event_Method */
     obj.MyEvent += new MyClass.MyDelegate(Event_Method);

     obj.Num = 5; /* 会触动事件而写出: 5 是奇数 */
     obj.Num = 6; /* 会触动事件而写出: 6 是偶数 */

     Console.ReadKey();
   }

   /* 这是准备给事件调用的方法 */
   static void Event_Method(int n)
   {
     if (n % 2 == 0)
       Console.WriteLine("{0} 是偶数", n);
     else
       Console.WriteLine("{0} 是奇数", n);
   }
}

时间: 2024-11-26 15:17:15

C#语法练习(14): 类[六]的相关文章

Swift语法专题十——类和结构体

Swift讲解专题十--类与结构体 一.引言         Swift中的类与结构体十分相似,和Objective-C不同的是,Swift中的结构体不仅可以定义属性,也可以像类一样为其定义方法.         Swift中的类与结构体有如下相似点: 1.定义属性来存储值. 2.定义函数来提供功能. 3.通过定义下标语法使用下标的方式取值. 4.定义构造方法来对其进行初始化. 5.通过扩展来在原始基础上添加功能. 6.通过协议来定义实现标准. 当然类和结构体也有许多不同点,下面这些功能是类独有

PHP 14:类的实例

原文:PHP 14:类的实例在本章中我们将介绍一个实例,来进一步对类加深了解.本章构建一个Page类,它代表了一个页面.其中有显示页面的title,样式,内容等函数.此页面的效果如下:我们将把这个页面分成几块:1)有图的那一块.2)有导航按钮的那一块.3)中间文字的一会4)页底的这一块 具体看看代码吧:   1 <?php  2 class Page  3  {  4      //Page Title  5      public $title="Service In Action Lt

【3万患者11万图像14类病理】NIH公开大规模胸部X光数据集

胸部X光检查是最常见而且最具成本效益的医学影像检查之一.但是,胸部X光检查的临床诊断很具挑战性,有时被认为比胸部CT成像更难诊断.过去一些有前景的工作已经被报道过,特别是最近在结核病(TB)分类方面的深度学习工作.由于只有几千张图像被用于学习,在现实世界的医疗中,在胸部X光片的所有数据设置上,实现临床相关的计算机辅助检测和诊断(CAD)仍然是非常困难的,甚至是不可能的. Openi 是迄今最大的公共胸部X射线数据集,由于只有4143张正面视图的胸部X光片,用于胸部疾病识别的深度神经网络的性能受到

《C++面向对象高效编程(第2版)》——2.14 类的实现者

2.14 类的实现者 C++面向对象高效编程(第2版)编写实现所有成员函数源代码的程序员,是类的实现者.实现者有实现成员函数的所有代码,而且非常熟悉数据成员,也非常熟悉成员函数如何使用数据成员.实现者在需要时有权修改实现(但不是接口),修改类接口的情况很少见.在后续章节中会介绍这样做的原因. 实现者编译实现所有成员函数的源代码(这将生成目标代码(object code)),并且把它和接口文件(头文件)一同提供给客户.实现的源代码通常保存在与类名相同的文件中,但名称后缀.C..cc..cpp..c

【OC语法快览】六、类实现

Class Implementation      类实现 Let's create an implementation, starting with the getters: 接下来创建一个类实现,从访问器开始: #import "Photo.h" @implementation Photo - (NSString*) caption { return caption; } - (NSString*) photographer { return photographer; } @en

轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类

       在写这个工具类的时候发现传入的参数太多,以至于方法泛滥,只一个send方法就有30多个,所以对工具类进行了优化,把输入参数封装在一个对象里,这样以后再扩展输入参数,直接修改这个类就ok了.        不多说了,先上代码: /** * 请求配置类 * * @author arron * @date 2016年2月2日 下午3:14:32 * @version 1.0 */ public class HttpConfig { private HttpConfig(){}; /**

java语法-struts2 scope类语法问题

问题描述 struts2 scope类语法问题 package com.opensymphony.xwork2.inject; import java.util.concurrent.Callable; public enum Scope { DEFAULT { @Override InternalFactory<? extends T> scopeFactory(Class type, String name, InternalFactory<? extends T> facto

C#语法练习(13): 类[五]

通过索引器可以方便使用类中的数组(或集合)成员: using System; class MyClass { private float[] fs = new float[3] { 1.1f, 2.2f, 3.3f }; /* 属性 */ public int Length { get { return fs.Length; } set { fs = new float[value]; } } /* 索引器 */ public float this[int n] { get { return f

C#语法练习(9): 类[一]

所有类默认继承于 System.Object(或叫 Object): using System; class MyClass1 { } class MyClass2 : Object { } class MyClass3 : System.Object { } class Program { static void Main() { MyClass1 obj1 = new MyClass1(); MyClass2 obj2 = new MyClass2(); MyClass3 obj3 = ne