C# 语言 第一部分 面向对象(十二) 接口的应用
本章为接口课程的综合练习。
本次练习展示了一个简化的银行业务流程,体现了银行和用户数个角色的关系。看下图:
账户类(Account)对象存储在数据库类(Database)对象中;计算机(Computer)类对象连接到数据库类对象上;银行柜台(BankCounter)类对象拥有一台计算机对象作为私有成员,利用该对象对数据库进行操作;ATM机(ATM)类继承自计算机类,其对象可以对数据库对象进行操作;银行柜台类对象可创建银行用户类(BankUser)对象,用户类对象可以进行取款、存款和转账操作。
GetMoneyable接口表示对象具备取款能力;
SaveMoneyable接口表示对象具备存款能力;
Transferable接口表示对象具备转账能力。
用户类对象取款操作目标为任意符合GetMoneyable接口的类对象;存款操作目标为任意符合SaveMoneyable接口的类对象;转账操作目标为任意符合Transferable接口的类对象。
银行柜台类实现了所有三个接口;ATM对象实现了GetMoneyable接口和Transferable接口,即ATM机可以取款和转账,不能存款。
看代码:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace Edu.Study.OO.UseInterface {
7
8 /// <summary>
9 /// 账号类
10 /// </summary>
11 public class Account {
12
13 /// <summary>
14 /// 账户名
15 /// </summary>
16 private string name;
17
18 /// <summary>
19 /// 账号
20 /// </summary>
21 private string accountNo;
22
23 /// <summary>
24 /// 帐户密码
25 /// </summary>
26 private string password;
27
28 /// <summary>
29 /// 账户存款
30 /// </summary>
31 private int money;
32
33 /// <summary>
34 /// 流水号,用于生成账号
35 /// </summary>
36 private static int serialNo = 0;
37
38 /// <summary>
39 /// 账户名,只读
40 /// </summary>
41
相关文档:
新建一个专门用来创建验证码图片的页面ValidateCode.aspx
它的后台cs文件代码如下:
PageLoad
private void Page_Load(object sender, System.EventArgs e)
{
string checkCode = CreateRandomCode(4);
Session["CheckCode"] = checkCode;
CreateImage(checkCode);
......
C# access日期查询加#
if (((string)((ComboBoxItem)cmbField.SelectedItem).Value).Equals("System.DateTime"))
{
//判断日期的;
& ......
字符串的宽度自适应容器
Graphics g = Graphics.fromImage(new Bitmap(1, 1));
SizeF size = g.MeasureString(lblTitle.Text, new Font("宋体", 24 * 0.0625F, FontStyle.Bold));
float oldSize=(800*0.0625F);//1px=0.0625em
float newSize = (0.75F/size.Width )* oldSize;
size.Width 的单 ......
根据宽度来决定显示的字符串长度 (C#,VS2005)
如果 lable长度固定但字符串长度可变,如果超过了lable显示的长度时,希望用 ...代替剩下的字符,这时需要一个函数
Graphics.MeasureString
具体代码如下
public string Abbreviation(string str)
{
&nbs ......