C#接口学习1
来源:互联网 发布:独创科技网络 编辑:程序博客网 时间:2024/05/29 17:52
接口是一种用于定义的协议,他描述可属于任何类或结构的一组相关行为,它可以看成是实现一组类的模板。接口可由方法、属性、时间和索引器这四种成员类型的任何组合构成,但是不能包含字段。
下面为C#开发实战1200例中实例117,该例子使用接口实现了不同类中相同行为或者方法的统一。
该例子通过以下不走实现了自动语言匹配:
1、一个combox(下拉菜单)控件选择当前对话的是中国人or美国人。
2、通过检测文本框中文字是中文还是英文。
3、通过1和2是否匹配得出几条输出。(通过弹出式messagebox实现)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace _115{ public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializationCombox1(); comboBox1.SelectedIndex = 0; } public void InitializationCombox1() { comboBox1.Items.Add("中国人"); comboBox1.Items.Add("美国人"); } ///<Summary> ///声明一个接口,用于定义Seak方法,而具体Speak方法功能的实现是在类中进行的 ///</Summary> interface ISelectLanguage { void Speak(string str); } ///<Summary> ///如果跟中国人对话,则说汉语 ///</Summary> class C_SpeakChinese : ISelectLanguage { public void Speak(string str) { MessageBox.Show("您对中国友人说:"+ str,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information); } } ///<Summary> //如果跟美国人对话,则说英语 ///</Summary> class C_SpeakEnglish : ISelectLanguage { public void Speak(string str) { MessageBox.Show("您对美国人说:" + str, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } ///<Summary> //判断当前说的语言是汉语还是英语,英语返回false,汉语返回true ///</Summary> public bool CheckChinese(string str) { bool flag = false; UnicodeEncoding a = new UnicodeEncoding(); byte[] b = a.GetBytes(str); for (int i = 0; i < b.Length; i++) { i++; if (b[i] != 0) { flag = true; } else { flag = false; } } return flag; } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "") { MessageBox.Show("不想和友人说点什么吗?", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { if(comboBox1.SelectedIndex == 0)//与中国人对话 if (CheckChinese(textBox1.Text)) { ISelectLanguage interface1 = new C_SpeakChinese(); interface1.Speak(textBox1.Text); } else { MessageBox.Show("请和中国友人说汉语?", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else //与美国人对话 { if(CheckChinese(textBox1.Text)) { MessageBox.Show("请和美国友人说英语","警告", MessageBoxButtons.OK, MessageBoxIcon.Error); return ; } else { ISelectLanguage Interface1 = new C_SpeakEnglish(); Interface1.Speak(textBox1.Text); } } } } }}
class C_SpeakChinese : ISelectLanguageclass C_SpeakEnglish : ISelectLanguage
(1)分别为C_SpeakChinese和C_SpeakEnglish添加了接口ISelectLanguage,然后通过 接口访问两个类相同的Speak方法
(2)判断英文和汉语的主要差别是看
UnicodeEncoding a = new UnicodeEncoding(); byte[] b = a.GetBytes(str);b返回的值得组成,汉字为两个不为零的数,英语一个字母的返回值为一个不为零的数和一个为0的数。
(3)comboBox添加项和设置默认值
添加项:
comboBox1.Items.Add("中国人"); comboBox1.Items.Add("美国人");设置默认值
comboBox1.SelectedIndex = 0;通常上面两项操作均应该在窗口初始化时完成。
0 0
- C#接口学习1
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#接口零度学习
- C#学习之接口
- C# 接口的学习
- C#接口的学习
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C#学习之接口
- C# 接口学习
- 实现背景透明,文字不透明,兼容所有浏览器
- Java关键字abstract使用总结
- iOS开发 偷懒小技巧---自定义XCode代码片段
- java中Date,String,timestamp转换问题
- OC_类和对象
- C#接口学习1
- Ubuntu 下安装 Atom
- hdu5273dp
- Java 数组基础
- (LeetCode)两个链表的第一个公共节点
- Android中ViewPgae中的Fragment如何确认当前页面可见的问题
- Github 主页:https://github.com/RunningYoung
- C# Socket的TCP通讯
- Eclipse 连接 Hadoop 开发环境