首页 > 代码库 > 2017.2.17学习C#的第一天,我眼中的C#是什么样的?

2017.2.17学习C#的第一天,我眼中的C#是什么样的?

今天是学习C#的第一天,感谢凯哥带我走上了学习C#的正路(昨天资料发下来自己看了下,云里雾里,没咋看懂)。

一 什么是C#(第一天学习)

首先感谢凯哥让我了解了C#的起源,发展。从最初的C到C++再到现在的C++++(也就是C#),它与JAVA的恩恩怨怨,微软和JAVA的恩恩怨怨(具体是啥我也没怎么记住,还是凯哥说的对,度娘上有详细的解释,我就不复制粘贴了)。但是有一点我记得很清楚,C#中的#就是sharp的意思,sharp是锋利,敏捷的意思,因此在我眼中,C#就是锋利,敏捷的编程语言!让我更效率的让电脑明白我的意图,更效率的编写程序。

二 入门(控制台应用程序编写)

如何进入编写控制台应用程序我就不多写了,没有什么技术含量(有几个要点需要注意一下1.模型选择.net framework 4.0,避免出现模型过低或过高的情况。2.名称一定要改好,避免出现程序过多造成的混乱情况)。

(一)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace 测试3
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12         }
13     }
14 }

这是一个新建的控制台应用程序编写初始状态。

有如下几个要点:

1.namespace 是程序的命名空间,测试2就是程序名称。
2.class Program 代表程序的类。(这组数据是Program类)

3.static void Main(string[] args)表示这个程序应用的哪个方法。(大概意思就是这个程序运用了string[] args的方法)

4.将鼠标移动到行数右侧的大括号{}时,会显示出括号范围,数据编写都在运用了哪种方法的范围括号内。

(二)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace 第一天上午学习
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.WriteLine("键盘敲烂");//显示键盘敲烂
13             Console.WriteLine("月薪过万");//显示月薪过万
14             Console.ReadLine();//等待回车
15             Console.WriteLine("键盘落灰");//第一个回车后显示键盘落灰
16             Console.ReadLine();//等待回车
17             Console.WriteLine("回家要饭");//第二个回车后显示回家要饭
18             Console.ReadLine();//防闪退光标
19             }
20         }
21    
22 }

这是一个最简单的控制台应用程序的纯输出程序编写。

启动该控制台应用输出程序后显示如下:

技术分享

开始分析:

1,当程序启动后,控制台应用程序上显示“键盘敲烂(换行)月薪过万”,Console.WriteLine("");代码是一个纯输出型代码,作用就是在控制台应用程序中显示分号""内的内容,如果内容换成123456,那么在控制台应用程序中显示123456,但是该代码默认输出文字后自动换行,Comsole.Write("");代码与之作用相同,但是该代码不会自动默认换行(注意区别)。

2,程序第15,17行代码也有输出文字,为什么程序运行后没有显示。这是代码Console.ReadLine("");发生作用,该代码是一个输入代码,单独出现的作用:(1)击回车后,默认换行。(2)第18行代码中作用是防止程序运行时闪退(程序运行完成,按回车后退出,防止直接退出)。

3.当该程序点击两次回车后,显示如下:

技术分享

4,再次点击回车后,程序运行完毕,退出。

5,每行代码后双下划线//为绿色字体,双下划线//作用是代码做一个注释,只会在代码中显示,并不会在程序运行中出现,防止代码过多引起视觉混乱,帮助理顺编写代码思路,方便构筑框架。

6,特别注意:代码构成均为英文输入,无论是代码还是字符。如果非英文输入,代码会在错误处用红色波浪线标识,如图所示:

技术分享

该代码Console后面的点错误运用中文输入法的。,括号错误运用中文括号(),引号错误运用中文引用中文引号,分号错误运用中文分号。

正确应为:

技术分享

(三)输入型代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace 测试
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.WriteLine("请输入姓名:");//显示请输入姓名:
13             String a = (Console.ReadLine());//定义变量a,将a赋值为输入内容
14             a = a + ",你好!";//将a再次赋值
15             Console.WriteLine(a);//输出a
16             Console.ReadLine();//防闪退
17         }
18     }
19 }

开始分析:

1,第12行代码,不解释,输出代码。

2,英文字符“”内为字符串,可以将其看成一个完整的字符串,这个字符串里面可以有许多单个字符,但在这里它被默认为一个字符串,无论里面有多少字符。

3,着重分析第13行代码,这个代码由两部分组成,首先是String a ,这是一个定义代码,意思是定义变量a(原本a是一个变量,它可以是字母a,也可以是字符a,可以是任何东西,没有明确定义,不要将a想成是字母),使a被定义。再分析a=,(为什么是a=,而不是等号,这里牵扯到代码的合并简写,第13行完整写出应该是Sting a ;  a=Console.ReadLine(); ,合并简写体现C#代码编写的效率,敏捷),a=的意思就是将等号后面的内容赋值给a,是a由常量变成定量,那么String a =的意思就是定义常量a,使其变成定量a,后将=后面的值赋予a。Console.ReadLine()意思就是用户输入的内容。13行代码可分析为定义变量a,将用户要输入的内容赋值给变量a,使其变成常量。在这里就变成定义a为输入的内容,我输入什么,计算机就默认把我输入的内容赋值给a。

4,第14行代码,可能觉得不对,原本已经被定义的变量a居然再次被定义,这不会造成程序混乱吗?这里需要简单分析一下:第12行中,常量a被定义且赋值,该代码已经运行完毕后,运行第13行代码,第13行代码意思就是将a再次赋值,程序不会倒退回去在运行12行代码,故而不会造成程序死机。+在这里不是加减乘除的加号,而是将加号前后两部分内容粘贴在一起的意思(在这里可以看成阿呆+你好,即为阿呆你好)。如果觉得不理解,可看如下程序,与前程序输出结果一致:

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace 测试
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.WriteLine("请输入姓名:");//显示请输入姓名:
13             String a, b ;
14             a = (Console.ReadLine());//赋值a
15             b = a + ",你好!";//赋值b
16             Console.WriteLine(b);//输出b
17             Console.ReadLine();//防闪退
18         }
19     }
20 }

 原程序存在部分合并简写,两个程序输出结果相同,如下图:

技术分享

 

(四)本次作业分析

练习题1:
“请输入您的姓名:”同一行出现光标,等待用户输入
“请输入您的性别:”光标,等待用户输入
“请输入您的年龄:”同上
“请输入您的身高:”同上
“请输入您的体重:”同上
“--------------------华丽的分割线-----------------------”
xxx你好!您的性别是“男”,您的年龄是“18”,您的身高是“180”,您的体重是“180”。

练习题2:
您的身高和体重的和是“360”。

本次将练习题1.2放在一起:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace 作业第一题
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.Write("请输入您的名字:");
13             String name = (Console.ReadLine());//名字
14             
15             Console.Write("请输入您的性别:");
16             String gender = (Console.ReadLine());//性别
17 
18             Console.Write("请输入您的年龄:");
19             String age = (Console.ReadLine());//年龄
20 
21             Console.Write("请输入您的身高:");
22             String height = (Console.ReadLine());//身高
23 
24             Console.Write("请输入您的体重:");
25             String weight = (Console.ReadLine());//体重
26 
27             Console.ReadLine();//等待光标
28 
29             Console.WriteLine("--------------------华丽的分割线-----------------------");
30 
31             Console.ReadLine();//等待光标
32            
33             String end1 = name + "您好!您的性别是" + "" + gender +""  + ", " + "您的年龄是" + "" + age + "" + "," + "您的身高是" + "" + height +"" + "," + "您的体重是" + "" + weight+"”。";//定义end1
34 
35             Console.WriteLine(end1);//输出end1
36 
37             int height1 = int.Parse(height);
38 
39             int weight2 = int.Parse(weight);//字符串转变整数
40 
41             String end2 = "您的身高和体重的和是" + (height1 + weight2);//身高体重和定义end2
42 
43             Console.WriteLine(end2);//输出end2
44 
45             Console.ReadLine();//防闪退
46 
47         }
48     }
49 }

这是程序运行结果:

技术分享

本次分析代码33行与41行,37和39行,其余代码均在前面有详细叙述,就不多说了。

先分析37和39行代码,这里出现了新的代码int,这个代码的意思就是定义整数,(例如int a = 5; 这个意思就是将整数5赋值给a,使a变成整数5,。如果是string a = "5"; ,那么它的意思不使定义a为整数5,而是定义为字符串5),33和39行代码的意思就是将字符串转变成整数数字(例如字符串5转变成整数5)。如果我输入的身高和体重不是字符串数字,那会出现什么情况?

下图所示:

技术分享

在这里可以看出如果不是数字字符,程序运行到一般就开始报错,这一点需要注意。

 

第33行与第41行最主要的区别就是+的运用方式不同 ,33行为字符串,则系统默认为前后字符串相粘贴。二41行已经定义为整数数字,计算机会默认为加减乘除运算。

 这就是我在2017.02.17这一天学到的所有内容,感谢指导老师凯锅,在我学习C#第一天后,我眼中的C#。

 

2017.2.17学习C#的第一天,我眼中的C#是什么样的?