C#_事件学习
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Lab7_4
{
class Stock
{
public delegate void PriceRise(double money); //定义委托
public delegate void PriceDown(double money); public event PriceRise PriceRiseEvent; //定义事件
public event PriceDown PriceDownEvent; private string stockName;
private double stockPrice; public string StockName {
set;
get;
} public double StockPrice {
set;
get;
} public Stock(string name, double price) {
stockName = name; stockPrice = price;
} public void priceRise(double up) {
Console.WriteLine("股票上升: {0}", up);
PriceRiseEvent(up); //触发事件 } public void priceDown(double down) {
Console.WriteLine("股票下降: {0}", down);
PriceDownEvent(down);
} }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Lab7_4
{
class Buyer
{
private Stock stock; //卖家要抛售的股票 public Buyer(Stock s) {
stock = s;
} public void StockPriceRise(double up) { if (up > 0.05) {
Console.WriteLine("股票上涨已经超过5%, 买家谨慎买入");
} else {
Console.WriteLine("股票正在小幅上涨, 买家可以买入");
}
} public void StockPriceDown(double down) {
if (down > 0.05) {
Console.WriteLine("股票下跌已经超过0.05,买家可以逢低买入");
} else {
Console.WriteLine("股票正在小幅下跌,买家暂时请观望");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Lab7_4
{
class Seller
{
private Stock stock; //卖家要抛售的股票 public Seller(Stock s) {
stock = s;
} public void StockPriceRise(double up) { if (up > 0.05) {
Console.WriteLine("股票上涨已经超过5%, 卖家请赶快抛售");
} else {
Console.WriteLine("股票正在小幅上涨, 卖家可以继续观望");
}
} public void StockPriceDown(double down) {
if (down > 0.05) {
Console.WriteLine("股票下跌已经超过0.05,卖家请逢低补仓");
} else {
Console.WriteLine("股票正在小幅下跌,卖家请谨慎操作");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Lab7_4
{
class Program
{
static void Main(string[] args) { Console.WriteLine("输入股票名: ");
Stock stock = new Stock(Console.ReadLine(), ); Buyer buyer = new Buyer(stock);
Seller seller = new Seller(stock); //注册事件
stock.PriceRiseEvent += buyer.StockPriceRise;
stock.PriceDownEvent += buyer.StockPriceDown; stock.PriceRiseEvent += seller.StockPriceRise;
stock.PriceDownEvent += seller.StockPriceDown; //触发事件
Console.WriteLine("输入涨率: ");
stock.priceRise(double.Parse(Console.ReadLine()));
Console.WriteLine("输入降率: ");
stock.priceDown(double.Parse(Console.ReadLine())); }
}
}
C#_事件学习的更多相关文章
- Mysql事件学习
出自:http://blog.chinaunix.net/uid-20639775-id-3323098.html Mysql事件学习 在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQ ...
- C#_事件
C#_事件 概述 今天用来演示事件的例子是模拟实现一个文件下载类,在这个类中我将定义一个DownLoad事件,这个事件用来在文件下载的过程中,向订阅这个事件的用户发出消息,而这个消息将用DownLoa ...
- centos5.5字体为方块问题的解决_深入学习编程_百度空间
centos5.5字体为方块问题的解决_深入学习编程_百度空间 centos5.5字体为方块问题的解决 一.yum -y install fonts-chinese二.yum -y install f ...
- C#委托与事件学习笔记
委托事件学习笔记 本文是学习委托和事件的笔记,水平有限,如有错漏之处,还望大神不吝赐教. 什么是委托?从字面意思来解释,就是把一个动作交给别人去执行.在实际开发中最常用的就是使一个方法可以当做一个参数 ...
- C# event 事件学习
C# event 事件学习 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-26 章节: 简单事件编写 模拟 WPF 控件传递 ...
- 安卓开发_深入学习ViewPager控件
一.概述 ViewPager是android扩展包v4包(android.support.v4.view.ViewPager)中的类,这个类可以让用户左右切换当前的view. ViewPager特点: ...
- 《JS高程》事件学习笔记
事件:文档或浏览器窗口中发生的一些特定的交互瞬间,也即用户或浏览器自身执行的某种动作. -------------------------------------------------------- ...
- JS 点击事件学习总结
废话篇: 在我们编写无论什么网页内容的时候我们总是或多或少的要接触到点击事件这一范畴的,写过几个简短的demo和网页之后,感觉自己对电机事件一类的东西了解也更为的清楚了,之前写过很多零零散散的东西现在 ...
- android touchEvent事件学习
学习网址:http://www.apkbus.com/forum.php?mod=viewthread&tid=44296 1:Android Touch事件传递机制解析 android系统中 ...
随机推荐
- Codeforces Round #182 (Div. 1) B. Yaroslav and Time 最短路
题目链接: http://codeforces.com/problemset/problem/301/B B. Yaroslav and Time time limit per test2 secon ...
- Node.js记录
在智能社上听了一些关于node.js的视频,总结一小部分内容,都是总结老师讲的知识点,并且也是在不断学习的过程,所以会不断更新.也是为了怕自己遗忘一些知识点,同时现今没有什么项目可以让我去真正实践,这 ...
- iOS- 什么是GitHub?关于它的自我介绍「初识 GitHub」
1 前言 我一直认为 GitHub 是程序员必备技能,程序员应该没有不知道 GitHub 的才对,我当初接触 GitHub 也大概工作了一年多才开始学习使用,我读者里很多是初学者,而且还有很多是在校大 ...
- [日常工作] 应用服务器上面应该尽量少开各种应用 --Chrome 内存泄露 让应用服务器非常缓慢
1. 前段时间修改 服务器的密码 导致应用程序的web site 启动有问题 ,打开chrome 查看了错误详细信息 但是忘记关了.. 今天反馈机器非常缓慢 简单看了下内存 吐血... 所以以后不能在 ...
- MySQL数据库中varchar与char类型的区别
在数据库中建表时,需要给数据定义一个数据库中的数据库类型,当需要给String类型定义一个数据库中的类型时,可以看见有两个选择,一个是varchar,另一个是char,有很多人不清楚两者的区别,包括自 ...
- Win10系统 安装Anaconda+TensorFlow+Keras
小白一枚,安装过程走了很多坑,前前后后安装了好几天,因此记录一下. 一.安装anaconda 官方下载地址:https://repo.continuum.io/archive/ 选项相应的版本安装,我 ...
- Multi-class Classification相关
标签(空格分隔): 毕业论文 (OS: 最近在做关于多类分类的综述,但是搜索出来好多方向搞得自己云里雾里的,好吧,又是在下孤陋寡闻了.还是那句话,不知道不可怕,但一直不知道就很尴尬了.) one-cl ...
- MT【129】常数变易法
已知数列\(\{x_n\}\)满足\[x_{n+1}=\left(\dfrac 2{n^2}+\dfrac 3n+1\right)x_n+n+1,n\in\mathbf N^*,\]且\(x_1=3\ ...
- win10远程连接
提示凭证不工作问题 https://blog.csdn.net/sinat_25926481/article/details/50775616
- 【BZOJ3064】CPU监控(线段树)
[BZOJ3064]CPU监控(线段树) 题面 BZOJ 洛谷 题解 神仙\(zsy\)出在了\(noip\)模拟的题目.(然而\(zsy\)出的还是这题的升级版) 首先明确一点,这题是一个吉司机线段 ...