输入学号类封装_C# 封装实例

今天这个主题也是帮群友解答的一个问题,

如下图,有很多方法都要重复利用一段代码,所以他需要把它封装成为一个方法去调用,但是 这个键盘按下事件 他不知道怎么封装.

  封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:

  • public:所有对象都可以访问;

  • private:对象本身在对象内部可以访问;

  • protected:只有该类对象及其子类对象可以访问

  • internal:同一个程序集的对象可以访问;

  • protected internal:访问限于当前程序集或派生自包含类的类型。

de8b40d0a3f79cf26ed355269cb1bb77.png

首先解释下:

KeyPressEventArgs.Handled 属性bai 获取或设置一个值,该值指示是否处理过du KeyPress 事件zhi。
           属性值类型:System.Boolean如果处理过事dao件,则为 true;
           否则为 false。备注如果未处理事件,则会将它发送到操作系统进行默认处理。
          将 Handled 设置为 true,以取消 KeyPress 事件。以上来源MSDN。
           解释:就是说如果将Handled 设为True,那么KeyPress事件将会取消,这样就是说你按下了某个个按键了,但是系统不处理了,等于没按!!!

完成代码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp29{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {        }        test t = new test();        private void button1_Click(object sender, EventArgs e)        {           // test t = new test();            // t.doThing(this, new KeyPressEventArgs('1'));        }         //KeyPressEventArgs.Handled 属性bai 获取或设置一个值,该值指示是否处理过du KeyPress 事件zhi。        //    属性值类型:System.Boolean如果处理过事dao件,则为 true;        //    否则为 false。备注如果未处理事件,则会将它发送到操作系统进行默认处理。        //    将 Handled 设置为 true,以取消 KeyPress 事件。以上来源MSDN。        //    解释:就是说如果将Handled 设为True,那么KeyPress事件将会取消,这样就是说你按下了某个个按键了,但是系统不处理了,等于没按!!!        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)        {            t.doThing(e);        }        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)        {            t.doThing(e);        }    }    class test    {        public void doThing(KeyPressEventArgs e)        {            string pa = "[0-9]|\b";//匹配数字与退格符            Regex r = new Regex(pa);            Match m = r.Match(e.KeyChar.ToString());            if (m.Success)            {                e.Handled = false;            }            else            {                e.Handled = true;                MessageBox.Show("请输入数字:", "提示");            }        }    }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值