【C#】零基础学会C#一——C#与.NET概述

    科技2026-04-12  6

    零基础学会C#一——C#与.NET概述

    1、目标2、控制台的输入与输出2.1问题2.2 说明2.3 分析2.4 参考步骤2.5 代码2.6 防闪退 3、建立Windows窗体应用程序3.1 问题3.2 说明3.3 分析3.4 推荐步骤3.5 代码 4、结构体类型训练4.1 问题4.2 说明4.3 分析4.4 推荐步骤4.5 代码 5、练习5.1 习题一5.1.1 题目5.1.2 代码5.1.3 测试结果 5.2 习题二5.2.1 题目5.2.2 代码5.2.3 测试结果 参考资料

    1、目标

    编写第一个控制台的输入与输出程序-建立第一个Windows窗体应用程序定义一个简单的IP地址结构体

    2、控制台的输入与输出

    2.1问题

    在控制台上实现文本的输入与输出。

    2.2 说明

    按照提示输入自己的姓名,程序输出你输入的名字,并欢迎使用C#语言。主要使用Console(控制台)对象的WriteLine和Write方法实现显示;使用ReadLine方法读入字符。

    2.3 分析

    Main()是应用程序(可执行)的入口点,它必须包含在一个类中,且仅有一个类能使用该标志定义。

    2.4 参考步骤

    (1)为解决方案创建一个控制台应用程序的项目“Example_1”。 (2)将“Program.cs”类文件重命名为“Welcome.cs”。 (3)将以下代码添加到“Welcome.cs”中。

    2.5 代码

    using System; // using指令不再需要规定名字空间,就可以使用它们的方法和属性 using System.Collections.Generic; using System.Text; namespace Example_1 { class Welcome { /*这种注释跨越多行*/ static void Main(string[] args) { //这是单行注释 Console.Write("请输入你的姓名:"); //Write与WriteLine不同的地方在于它输出时不换行 string strName = Console.ReadLine(); Console.WriteLine("{0}+,你好!\n 欢迎使用C#语言!", strName); //{0}代替WriteLine方法的参数表中紧随格式串后的第一个变量 } } }

    2.6 防闪退

    Console.ReadKey();

    3、建立Windows窗体应用程序

    3.1 问题

    设计一个窗口,可以将用户输入的两个操作数进行加法计算,并显示计算结果。

    3.2 说明

    首先要新建Windows应用程序类型的项目,创建成功后,可以得到一个名为Form1的空白窗体。可以从左边工具箱中的公共控件组中选择控件往窗体上拖放。 在Windows窗体上添加两个文本输入框供用户输入操作数,再添加一个按钮来对输入的操作数进行加法计算,最后将计算结果显示在第三个输入框中。

    3.3 分析

    Visual Studio.Net使开发图形界面程序简单,把需要的控件从工具箱拖放到Windows窗体上即可。使用Visual Studio.Net可以减少开放人员编写的代码量,使开放人员集中精力解决业务问题。

    3.4 推荐步骤

    (1)建立一个Windows应用程序项目,命名为“WinForm”。 (2)往Form1窗体上拖放3个Label和TextBox控件和一个Button控件,并对它们相应的Text属性进行修改,效果如图1-2:

    Visual Studio C#拖拽添加控件时工具箱挡住了Form窗体时,只需要点一下工具箱标题栏上的蓝色别针按钮,这个问题就可以解决了。蓝色别针按钮就是工具箱标题栏上的第二个按钮,也是我们用红色框框出来的那个按钮。点击蓝色别针后,工具箱就不再遮挡Form窗体了

    3.5 代码

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WinForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { long oper1, oper2, result; //如果操作数为空,显示警告信息 if ((textBox1.Text == "") || (textBox2.Text == "")) { MessageBox.Show(this,"操作数不能为空","提示信息", MessageBoxButtons.OK,MessageBoxIcon.Information); return; } try { //将文本框中的数据(字符串型)转换成long型数据 oper1 = Convert.ToInt64(textBox1.Text); oper2 = Convert.ToInt64(textBox2.Text); result = oper1 + oper2; //将和写入结果文本框 textBox3.Text = Convert.ToString(result); } catch(Exception e1) { //捕捉异常,例如:若输入字母,在转换成long类型时会引发异常 MessageBox.Show(this,e1.Message,"警告信息", MessageBoxButtons.OK,MessageBoxIcon.Warning); } } } }

    把下方代码复制到button里即可 自动生成的信息不用管他们,运行结果如下:

    4、结构体类型训练

    4.1 问题

    使用4个byte类型的变量来对IP地址进行存储,并将这4个变量组成定义一个结构体。

    4.2 说明

    struct类型是一种可包含构造函数、常数、字段、方法、属性、索引器、运算符和嵌套类型的值类型。

    4.3 分析

    此问题要求使用一个结构体来接受和储存IP地址中的4个十进制数。该结构体可通过以下方式声明: I P    s a m p l e S t r u c t ; IP \,\,sampleStruct; IPsampleStruct; 在C#中,类与结构体在语义上是不同的,结构是值类型,不需要实例化,而类是引用类型。

    4.4 推荐步骤

    (1)为解决方案创建一个控制台应用程序的项目“Example_2”。 (2)将“Program.cs”类文件重命名为“SampleStruct.cs”。 (3)将以下代码添加到“SampleStruct.cs”中。

    4.5 代码

    下面展示一些 内联代码片。

    using System; using System.Collections.Generic; using System.Text; namespace Example_2 { //定义一个IP结构体 struct IP { public byte b1, b2, b3, b4; } class SampleStruct { static void Main(string[] args) { IP sampleStruct; sampleStruct.b1 = 192; sampleStruct.b2 = 168; sampleStruct.b3 = 1; sampleStruct.b4 = 101; Console.Write("{0}.{1}",sampleStruct.b1,sampleStruct.b2); Console.Write("{0}.{1}", sampleStruct.b3, sampleStruct.b4); } } }

    5、练习

    5.1 习题一

    5.1.1 题目

    设计项目s1-1。功能要求:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入q字符的时候显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。

    5.1.2 代码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace s1_1 { class FindMax { static void Main(string[] args) { int temp,max = 0; string s = Console.ReadLine(); while (Console.ReadLine() != "q") { s = Console.ReadLine(); temp = Convert.ToInt16(s); if (max < temp) max = temp; } temp = Convert.ToInt16(s); if (max < temp) max = temp; Console.WriteLine("最大值:{0}", max); Console.ReadKey(); } } }

    Console.ReadLine() 会等待直到用户按下回车,一次读入一行。

    5.1.3 测试结果

    5.2 习题二

    5.2.1 题目

    设计项目s1-2。功能要求:依次提示用户输入两个整数(假设i1、i2)。如果i1、i2都是正数,则将i1的值递增1,然后输出i1+i2的值;如果i1、i2都是负数,则将i1的值递减10,然后输出i1i2的值;如果i1、i2中任一个为0,则提示数据有错误;否则计算i1i2的绝对值。

    5.2.2 代码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace s1_2 { class Calculate { static void Main(string[] args) { long op1, op2, result; Console.Write("操作数1:"); //Write与WriteLine不同的地方在于它输出时不换行 op1 = Convert.ToInt64(Console.ReadLine()); Console.Write("操作数2:"); //Write与WriteLine不同的地方在于它输出时不换行 op2 = Convert.ToInt64(Console.ReadLine()); if(op1==0||op2==0) { Console.WriteLine("数据错误:操作数不能为0!"); return; } else { if (op1 > 0 && op2 > 0) result = op1 + 1 + op2; else { if (op1 < 0 && op2 < 0) result = (op1 - 10) * op2; else result = -(op1 * op2); } } Console.WriteLine("结算结果:{0}", result); } } }

    5.2.3 测试结果

    参考资料

    Visual Studio C#拖拽添加控件时工具箱挡住了Form窗体怎么办

    Processed: 0.020, SQL: 10