1、常量与变量

C#中常见的数据类型

数据类型 说明
int(整形) 用于存储整数,如:一天的时间是24小时,一星期有7天
double(双精度) 用于存储小数,如:参考书的价格是22.5元,手机待机时间22.5小时
char(字符型) 用于存储单个字符,如:性别‘男’、‘女’,电灯‘开’、‘关’
bool(布尔) 表示现实中的“真”或“假”这两个概念,分别采用true和false这两个值来表示
string(字符串) 用于存储一串字符,如:“我的爱好是踢足球”,“我喜欢C#程序”

C#中常用的转义字符

转义符 说明
\' 单引号'
\" 双引号"
\\ 反斜线符\
\0 空字符
\uhhhh 使用十六进制形式的Unicode字符,例如,字符\u0041表示Unicode字符A
\a 响铃(警报)符,与\u007匹配
\b 退格符,与\u0008匹配
\t Tab符,与\u0009匹配
\r 回车符,与\u000D匹配
\v 垂直Tab符,与\u000B匹配
\f 换页符,与\u000C匹配
\n 换行符,与\u000A匹配
\0dd 使用八进制形式的ASCII字符,例如,字符\040表示ASCII的空格字符
\xhh 使用十六进制形式的ASCII字符,例如,字符\x41表示ASCII字符A

C#中简单类型

类型 别名 长度/位
sbyte System.Sbyte 8
byte System.Byte 8
char System.Char 16
short System.Int16 16
ushort System.UInt16 16
int System.Int32 32
uint System.UInt32 32
long System.Int64 64
ulong System.UInt64 64
float System.Single 32
double System.Double 64
decimal System.Decimal 128
bool System.Boolean 1

C#中简的整数型

类型 描述 范围 长度/b
sbyte 有符号字节型 -128~127 8
byte 字节型 0~255 8
char 字符型 U+0000~U+FFFF(Unicode字符集中的字符) 16
short 短整型 -32768~32767 16
ushort 无符号短整型 0~65535 16
int 整形 -2147483648~2147483647 32
uint 无符号整型 0~4294967295 32
long 长整型 -9223372036854775808~9223372036854775807 64
ulong 无符号长整形 0~18446744073709551615 64

2、实例2-1枚举型

 2.1创建一个Windows窗体,在窗体中添加一个Label控件

 2.2在双击后窗体控件后的代码编辑页面中输入代码,源代码如下:

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }
        enum Season { Spring =10,Summer ,Autumn=20,Winter};

        private void Test2_1_Load(object sender, EventArgs e)
        {
            Season currentSeason, nextSeason;   //定义枚举变量currentSeason和nextSeason
            currentSeason = Season.Summer;//使用枚举值Summer初始化currentSeason
            nextSeason = (Season)21;//将整数转换为枚举值,初始化nextSeson
            //将枚举型变量的值转换为整数值
            label1.Text = "枚举变量currentSeason的值为:" + (int)currentSeason;
            //使用枚举型变量的值
            label1.Text += "\n枚举变量 nextSeason代表枚举元素:" + nextSeason;
        }
    }
}
复制代码

 2.3运行效果如下

3.实例2-3结构型的使用

  3.1首先在Windows窗体中,添加一个Label控件

  3.2在窗体设计区中双击空白区域,然后在代码编辑区,编辑如下源代码

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        struct Student      //声明结构型
        {
            public int stuNo;   //申明结构型的数据成员
            public string stuName;
            public int age;
            public char sex;
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
            Student stu;        //定义结构型变量stu
            stu.stuNo = 1000;   //为stu的成员变量stuNo赋值
            stu.stuName = "令狐冲";    //为stu的成员变量stuName赋值
            stu.age = 25;           //为stu的成员变量age赋值
            stu.sex = '';          //为stu的成员变量sex赋值
            label1.Text = "学生信息:\n姓名:" + stu.stuName;   //使用stu的成员变量stuName
            label1.Text += "\n学号:" + stu.stuNo;             //使用stu的成员变量stuNo
            label1.Text += "\n性别:" + stu.sex;             //使用stu的成员变量sex
            label1.Text += "\n年龄:" + stu.age;             //使用stu的成员变量age

        }
    }
}
复制代码

  3.3运行效果如下

 4、实例2-4赋值运算符及隐式数据类型转换应用测试

(1)首先在Windows窗体中添加一个名字为lblShow的Label控件。

(2)然后在源代码视图中编辑如下代码。

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
            int a = 0, b = 1, c = 2;
            a += 2;         //a=a+2=2
            b *= c - 5;     //b=b*(c-5)=b*-3=-3
            c %=2;          //c=c%2=1
            lblShow.Text = "a=" + a + "," + "b=" + b + "," + "c+" + c;

        }
    }
}
复制代码

(3)该程序运行结果如图。

 

 5、实例2-5赋关系运算符与逻辑运算符测试

(1)首先在Windows窗体中添加一个名字为lblShow的Label控件。

(2)然后在源代码视图中编辑如下代码。

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
            int i = 25, j = 12;
            bool k = (i != j);
            string result = "i!=j的值为" + k;
            k = (i != j && i >= j + 20);
            result += "\n i!=j&&i>=j+20的值为" + k;
            lblShow.Text = result;
        }
    }
}
复制代码

(3)该程序运行结果如图。

 

 

 6、实例2-6数组及其应用演示

(1)首先在Windows窗体中添加一个名字为lblShow的Label控件。

(2)然后在源代码视图中编辑如下代码。

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
            int[] a = { 5, 1, 2, 4, 3 };    //创建数组a并初始化
            int[] b = new int[5];           //创建数组b
            Array.Copy(a, b, 5);            //把数组a所有数组元素复制给数组b
            Array.Clear(a, 0, 5);           //清除数组a各数组元素的值
            lblShow.Text = b[0] + "" + b[1] + "" + b[2] + "" + b[3] + "" + b[4] + "\n";
            Array.Sort(b);                  //对数组b的元素进行排序
            lblShow.Text += b[0] + "" + b[1] + "" + b[2] + "" + b[3] + "" + b[4] + "\n";
            Array.Reverse(b);               //对数组b的元素进行反转
            lblShow.Text += b[0] + "" + b[1] + "" + b[2] + "" + b[3] + "" + b[4] + "\n";

        }
    }
}
复制代码

 

(3)该程序运行结果如图。

 

 

 

 7、实例2-7赋值运算符及隐式数据类型转换应用测试

 

(1)首先在Windows窗体中添加一个名字为lblShow的Label控件。

 

(2)然后在源代码视图中编辑如下代码。

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
            int[,] a = new int[2, 3] { {1,2,3 },{4,5,6 } };
            int[][] b = new int[2][];
            b[0] = new int[3] { 1, 2, 3 };
            b[1] = new int[4] { 4, 5, 6, 7 };
            lblShow.Text = "a是二组数组,共6个数组元素,均为整数值.";
            lblShow.Text += "\n a[0,0]的值为:" + a[0, 0];
            lblShow.Text += "\n a[1,2]的值为:" + a[1, 2];
            lblShow.Text += "\n b是一维数组,共2个数组元素,均为子数组.";
            lblShow.Text += "\n b[0,0]的值为:" + b[0][0];
            lblShow.Text += "\n b[1,2]的值为:" + b[1][2];
        }
    }
}
复制代码

 

 

(3)该程序运行结果如图。

 8、实例2-8赋值运算符及隐式数据类型转换应用测试

(1)首先在Windows窗体中添加三个Label控件、两个TextBox控件以及两个Button控件。

(2)然后在源代码视图中编辑如下代码。

复制代码
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 Test2_1
{
    public partial class Test2_1 : Form
    {
        public Test2_1()
        {
            InitializeComponent();
        }

        private void Test2_1_Load(object sender, EventArgs e)
        {
           
        }
        StringBuilder sb = new StringBuilder(); //用于保存用户输入

        private void btnAdd_Click(object sender, EventArgs e)
        {
            sb.Append(txtSource.Text);          //添加字符串
            lblShow.Text = "字符串\"" + sb.ToString() + "\"的长度为" + sb.Length;
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            string s = sb.ToString();
            int pos = s.IndexOf(txtSearch.Text);
            lblShow.Text += "\n目标起始索引值为" + pos;
        }
    }
}
复制代码

(3)该程序运行结果如图。

 

 

 PS:课后练习

  共分三块内容,第一块是识别日期的星期天数,第二块是计算器,第三块是数组排序。源代码如下:

复制代码
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 第二章_实例
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        enum WeekDay { 星期天,星期一,星期二,星期三,星期四,星期五,星期六};
        double[] a = new double[5];
        int i = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            DateTime dt = Convert.ToDateTime(textBox1.Text);
            WeekDay wd = (WeekDay)dt.DayOfWeek;
            label2.Text = "这一天是" + wd + ".";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(textBox2.Text);
            double b = Convert.ToDouble(textBox3.Text);
            label5.Text = a + "+" + b + "的结果为";
            label5.Text += (a + b);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(textBox2.Text);
            double b = Convert.ToDouble(textBox3.Text);
            label5.Text = a + "-" + b + "的结果为";
            label5.Text += (a - b);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(textBox2.Text);
            double b = Convert.ToDouble(textBox3.Text);
            label5.Text = a + "*" + b + "的结果为";
            label5.Text += (a *b);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(textBox2.Text);
            double b = Convert.ToDouble(textBox3.Text);
            label5.Text = a + "\\" + b + "的结果为";
            double c = a / b;
            label5.Text += c;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            double a = Convert.ToDouble(textBox2.Text);
            double b = Convert.ToDouble(textBox3.Text);
            label5.Text = a + "" + b + "次方为";
            double c = Math.Pow(a,b);
            label5.Text += c;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            a[i] = Convert.ToDouble(textBox4.Text);
            label7.Text += a[i] + "  ";
            i++;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            Array.Sort(a);
            label8.Text += a[0] + "  " + a[1] + "  " + a[2] + "  " + a[3] + "  " + a[4];
        }
    }
}
复制代码