持续创作,加速成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情
这是【C# 教程系列第 25 篇】,如果觉得有用的话,欢迎关注专栏。
本篇博客将使用 Json 模拟简单的登陆,注册功能,在利用 Json 存储我们输入的账号,密码之前,不妨先看一下下面的思维导图,这样实现起来思路也会更加清晰,明畅。
接着我们先来看一下工程效果
动态演示图一:验证注册界面输入账号,密码的合法性
动态演示图二:验证登陆界面输入账号,密码的存在性
动态演示图三:验证已注册账号的重复性
界面随便搭的,大家不要在意这些细节,哈哈。
这里我先只把注册时用到的代码粘贴到下面,如下所示:
1:注册界面注册按钮事件
//注册界面注册按钮事件
public void BtnRegister()
{
if (inputAccount_R.text == string.Empty || inputPassword_R.text == string.Empty)
{
Tips("账号,密码不能为空");
return;
}
//使用正则,来检测输入账号,密码的合法性
Regex regexAcc = new Regex(outRange);
if (regexAcc.IsMatch(inputAccount_R.text))
{
Tips("账号不能为纯汉字");
return;
}
Regex regexPas = new Regex(pureNumber);
if (regexPas.IsMatch(inputPassword_R.text))
{
Tips("密码不能为纯数字");
return;
}
//如果输入符合规则,将用户输入的账号,密码存储到 UserData 数据类里
UserData user = new UserData(inputAccount_R.text, inputPassword_R.text);
SaveUserData(user);
}
2:保存用户注册时的账号,密码
//保存用户注册时的账号,密码
public void SaveUserData(UserData user)
{
//指定 Json 文件路径
string jsonFilePath = Application.dataPath + "/Resources/UserData.txt";
//先判断本地 Json 文件是否存在
//如果 Json 文件不存在(仅第一次时会走该判断)
if (!File.Exists(jsonFilePath))
{
//存入用户数据
DataManager.allUserData = new AllUserData();
DataManager.allUserData.userDatasList.Add(user);
Tips("恭喜注册成功");
//创建 Json 文件(其实就是txt文件)
File.CreateText(jsonFilePath).Dispose();
}
else
{
//如果 Json 文件存在,则验证账号重复性
foreach (UserData item in DataManager.allUserData.userDatasList)
{
//如果账号重复
if (string.Equals(user.Account, item.Account))
{
Tips("该账号已存在");
return;
}
}
//如果账号不重复,则写入到 AllUserData 数据类里,并提示注册成功
DataManager.allUserData.userDatasList.Add(user);
Tips("恭喜注册成功");
//清空账号,密码
inputAccount_R.text = string.Empty;
inputPassword_R.text = string.Empty;
}
//将输入写入到内存流中
FileInfo info = new FileInfo(jsonFilePath);
StreamWriter sw = info.CreateText();
string jsonStr = JsonMapper.ToJson(DataManager.allUserData);
sw.WriteLine(jsonStr);
sw.Flush();
sw.Dispose();
sw.Close();
//刷新资源
AssetDatabase.Refresh();
}
我把整个项目放到了我的 阿里云 (与github,码云一样,都可以代码管理),
这是我的项目链接:git@code.aliyun.com:suxing_xixi/Json.git,有需要的可以 clone 下来。
该测试仅实现从本地读取 Json 数据,并没有服务器方面的交互,如果项目有错误或者需要改进的地方,欢迎大家在评论区回复。 当然,如果这篇博客帮到了你,评论一下,点个关注,支持一下博主,这就是对我莫大的支持了。
晚安,奋斗中的我们……
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语
技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。
最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。