代码:

 using System;
using System.Windows.Forms; namespace CheckInput
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Sure_button_Click(object sender, EventArgs e)
{ if (CheckIsLegal() && CheckIsNull())
{
//TODO
} //just for test
if (CheckIsNull()&&CheckIsLegal_test())
{
//TODO
}
} /// <summary>
/// 判断输入是否合法
/// </summary>
/// <returns></returns>
private bool CheckIsLegal()
{
string[] SpecialString = new string[] { "/", @"\", ":", "*", "?", "<", ">", "|" };
//注:反斜杠“\”是转义字符
//“\'”单引号;“\"”双引号;“\\”反斜杠;“\0”空;“\a”警告;“\b”退格;“\f”换页;“\n”换行;“\r”换行
//注:用@ 符号加在字符串前面表示其中的转义字符“不”被处理
int tempInt = ; for (int i = ; i < SpecialString.Length; i++)
{
if (this.Name_textBox.Text.Trim().Contains(SpecialString[i]))
{
MessageBox.Show(@"姓名不能包含下列字符:/ \ : * ? < > |");
this.Name_textBox.Select();
return false;
}
if (this.Nickname_textBox.Text.Contains(SpecialString[i]))
{
MessageBox.Show(@"昵称不能包含下列字符:/ \ : * ? < > |");
this.Nickname_textBox.Select();
return false;
}
//TODO //其他的输入框同理 //TODO
} //注:string输入变成int型:1.int.TryParse;2.Convert.ToInt32();
//注:int转string:1.Convert.ToString();
if (!int.TryParse(this.Age_textBox.Text, out tempInt) || tempInt < )
{
MessageBox.Show("年龄输入错误!");
this.Age_textBox.Select();
return false;
}
//TODO //其他的输入框同理 //TODO
else
{
return true;
}
} /// <summary>
/// 判断输入框是否为空
/// </summary>
/// <returns></returns>
private bool CheckIsNull()
{
//Trim()删除字符串头部及尾部出现的空格=>这里判断是否为空,所以必须加上
//删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。
//注:TrimStart()=>只删除字符串的头部的空格
//注:TrimEnd()=>只删除字符串尾部的空格
if (this.Name_textBox.Text.Trim()=="")
{
MessageBox.Show(@"姓名不能为空!");
this.Name_textBox.Select();
return false;
}
if (this.Nickname_textBox.Text.Trim() == "")
{
MessageBox.Show(@"昵称不能为空!");
this.Nickname_textBox.Select();
return false;
}
//TODO //其他的输入框同理 //TODO
else
{
return true;
}
} /// <summary>
/// 开始不理解 out tempInt 的作用
/// 顺便复习一下string转化为int的过程
/// </summary>
/// <returns></returns>
private bool CheckIsLegal_test()
{
int tempInt = ; //注:Convert.ToInt32 if (!int.TryParse(this.Age_textBox.Text, out tempInt) || CheckIntIsNegative(Convert.ToInt32
(int.TryParse(this.Age_textBox.Text, out tempInt))))
{
MessageBox.Show("年龄输入错误!");
this.Age_textBox.Select();
return false;
}
//TODO //其他的输入框同理 //TODO
else
{
return true;
}
} private bool CheckIntIsNegative(int m)
{
if (m < )
{
return false;
}
else
{
return true;
}
} private bool CheckDoubleIsNegative(double m)
{
if (m < )
{
return false;
}
else
{
return true;
}
} private void Cancel_button_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

效果图:

C#学习笔记-输入数据判断(int、double、string)的更多相关文章

  1. Java学习笔记之——Manth类和String类

    (1) Math:常用的数学运算,都是静态方法 方法摘要 static double abs(double a) 返回 double 值的绝对值. static float abs(float a) ...

  2. Java学习笔记(二):String

    String 在Java中String是作为引用对象存在的一种数据类型,用来保存字符串. 实例化和赋值 //直接声明 String s1 = "Hello world!"; //通 ...

  3. int/double/string使用

    在计算机中存储数据和儿童在抽屉中存放物品很类似. 例如: 要在计算机中存一个数字50,需要两句话. int a;  //将要放的物品告诉家长 a=50;  //将物品放到某个抽屉中 计算机存储变量的过 ...

  4. Effective STL 学习笔记 Item 16:vector, string & C API

    有时需要支持 C 的接口,但这并不复杂. 对于 vector 来讲, \(v[0]\) 的地址 \(\&v[0]\) 即可作为数组指针传递给 C API: 1: // Legacy C API ...

  5. Activiti学习笔记11 — 判断节点的使用

    一. 创建流程 <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns=" ...

  6. Python学习笔记—条件判断和循环

    条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= ...

  7. Objective-C学习笔记之for( int )机制

    NSArray *myArray = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4&q ...

  8. Shell学习笔记 - 条件判断式

    1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ]  -- 推荐使用 例: [ -e /root/install.log ] ...

  9. [Android学习笔记]枚举与int的转换

    package com.example.enumdemo; import android.app.Activity; import android.os.Bundle; import android. ...

随机推荐

  1. mysql 日期函数总结

    1.0 格式化:DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据. 语法 DATE_FORMAT(date,format) date 参数是合法的日期.format 规定日期/时间的 ...

  2. 异步编程系列第05章 Await究竟做了什么?

    p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...

  3. win10与ubuntu下演示运行.net core rc2 1.0.0.3002702程序

    随着.net core rc2(1.0.0.002702)发布的同时,我们也来在本地 win10与ubuntu玩一下吧. 先简单说下.net core ,在.net core rc1中用的是dnx 工 ...

  4. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  5. http cancelled状态与ajax 超时

    在最近一周,我们的前端在测试某些批量超过的某个步骤时,发现请求好像发出来,但是后台状态没有变化,说是最近才出现的问题,以前一直都是正常的,两天连续出现两次之后,来找笔者,首先检查了下中间件的日志,发现 ...

  6. mysql 添加索引 mysql 创建索引

    1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引 ...

  7. javascript中concat方法深入理解

    最近在恶补js知识的时候,总是会因为js强大的语法而感到震撼.因为以前对前端方面的疏忽,导致了一些理解的错误.因此痛改前非,下定决心,不管做什么事情,都要有专研的精神. 在介绍前,抛出一个问题:如何将 ...

  8. tomcat远程调试javaweb

    当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置. 目前百度tomcat绝大多数方法都是在startup.sh或者catalina.sh增加 ...

  9. UITableViewHeaderFooterView的封装

    UITableViewHeaderFooterView的封装 特点 1. 封装的 UITableViewHeaderFooterView 能够让用户更好的自定义自己的 headerView; 2. 封 ...

  10. android 传感器应用

    本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现