代码:

 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. caching与缓存

    通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用 ...

  2. 设计模式(五)建造者模式(Builder Pattern)

    一.引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成.例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象, ...

  3. MVC学习系列——Filter扩展

    在MVC中,Filter也是可以扩展的.在此,本人对Filter的理解就是AOP,不知道各位大侠,有什么高的见解,呵呵... 首先MVC四大过滤神器IAuthorizationFilter,IActi ...

  4. 背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout

    [源码下载] 背水一战 Windows 10 (35) - 控件(弹出类): FlyoutBase, Flyout, MenuFlyout 作者:webabcd 介绍背水一战 Windows 10 之 ...

  5. ComponentOne 2016 V2发布了!

    火热的夏季迎了ComponentOne今年的第2个重大发布.这次发布包含了一些非常棒的新控件以及很多大的功能增强.   快来下载免费试用版体验吧! FlexChart(UWP.WPF.WinForms ...

  6. C语言: 预处理

    1. 字符映射 键盘有多种标准规格,例如常用的IBM 104键盘标准,然而不是所有键盘都能打出像#这样的符号,因此C语言的预处理引入了字符映射机制.如果程序员要求,预处理会按照约定对源代码中的字符进行 ...

  7. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  8. Three.js基础部分学习

    一.关于使用Three.js几点理论说明 1.请参考官网地址 https://threejs.org/ 2.使用three.js必备条件 <场景 A scene.相机a camera.渲染器 a ...

  9. js事件委托

    什么是事件委托:通俗的讲,onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 也 ...

  10. iOS开发中<null>的处理

    在iOS开发过程中经常需要与服务器进行数据通讯,JSON就是一种常用的高效简洁的数据格式. 问题: 在项目中,一直遇到一个坑的问题,程序在获取某些数据之后莫名崩溃.原因是:由于服务器的数据库中有些字段 ...