程序员开发实例大全宝库

网站首页 > 编程文章 正文

C#编程,密封类密封用户名和密码(源代码)

zazugpt 2024-09-07 01:50:32 编程文章 23 ℃ 0 评论

密封类的突出特点是不能被继承,通过密封类封装用户信息可以增加用户信息的安全性,密封类可以用来限制扩展性。如果密封了某个类,则其他类不能从该类继承。如果密封了某个成员,则派生类不能重写该成员的实现。

密封可以防止对库的类型和成员进行自定义,但也会影响某些程序开发人员对可用性的认识。

C#中使用密封类时,如果类满足下面的条件,则应该将这个类进行密封:

1、类是静态类

2、类包含带有安全敏感信息的继承的受保护成员

3、类继承多个虚成员并且密封每个成员的开发和测试费用明显大于密封整个类

程序界面:

程序代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class SealedUserInfo : Form
    {
        public SealedUserInfo()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 通过sealed关键字声明密封类,防止类被继承,有效保护重要信息,例如用户名和密码等
        /// </summary>
        public sealed class Userpwd
        {
            private string user = "";//存储用户名字段
            private string pwd = "";//存储密码字段          
            public string User  //存储用户名属性
            {
                get
                {
                    return user;
                }
                set
                {
                    user = value;
                }
            }          
            public string Pwd //存储密码属性
            {
                get
                {
                    return pwd;
                }
                set
                {
                    pwd = value;
                }
            }
        }
        /// <summary>
        /// 退出按钮控件,可以使用户安全退出程序
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void but_exit_Click(object sender, EventArgs e)
        {
            Application.Exit();//退出程序
        }
        /// <summary>
        /// 登录按钮控件,当用户输入完用户名和密码时,弹出提示对话框
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void but_log_Click(object sender, EventArgs e)
        {
            if (tex_user.Text == "" || tex_pwd.Text == "")//判断用户名和密码是否为空
            {
                MessageBox.Show("用户名和密码不能为空", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);//弹出提示对话框
            }
            else
            {
                Userpwd userpwd = new Userpwd();//实例化密封类
                userpwd.User = tex_user.Text;//为用户名属性赋值
                userpwd.Pwd = tex_pwd.Text;//为密码属性赋值
                MessageBox.Show("登录成功,用户名:" + userpwd.User + " 密码:" + userpwd.Pwd, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);//弹出提示框
            }
        }
    }
}

结语:

在C#中声明密封类时需要使用saled关键字,使用密封类时需要注意以下几点:

1、密封类不能作为基类被继承,但他可以继承别的类或接口

2、在密封类中不能声明受保护成员或虚成员,因为受保护成员只能从派生类进行访问,而虚成员只能在派生类中进行重写

3、由于密封类的不可继承性,因此密封类不能声明为抽象的类。

喜欢的请关注、收藏、转发!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表