c#学习笔记——核心基础(1.1)
Visual C#集成开发环境(IDE)
启动Visual Studio,选择“文件”–>“新建”–> “项目”菜单命令,打开“新建项目”对话框,如下图所示:
注意, 此时应该下拉选项,选择\”控制台应用\”(.NET Framework),而不是第一个(.NET Core):
第一个C#程序——简单的输入,输出
将代码写在下面的位置:
Console是一个类,具体用法,可见文档Console类。
选中“Console”,按F1,可查阅帮助文档:
之后遇到不懂的代码,也可以用这种方法进行学习。
代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace HalloWorld{class Program{static void Main(string[] args)//标准写法,类里面的函数叫方法{//Console.WriteLine(\"HalloWorld!\");int a, b, c;//定义变量//Console.WriteLine(\"请输入a:\");System.Console.WriteLine(\"请输入a:\");//指定a = int.Parse(Console.ReadLine());Console.WriteLine(\"请输入b:\");b = int.Parse(Console.ReadLine());c = a + b;Console.WriteLine(\"a + b =\" + c);//字符串的拼接Console.WriteLine(\"{0} + {1} ={2}\", a, b, c);Console.WriteLine(\"{0:D4} + {1:D4} ={2:C4}\", a, b, c);}}}
ctrl+F5调试,结果如下:
关于输入输出的格式问题,可以学习帮助文档,下一节将简单介绍一些。
控制台应用程序中的基本元素
Mian方法
它为入口主函数,其特点如下:
Main方法是.exe程序的入口点,程序控制在该方法中开始和结束。
Main方法方法在类或结构的内部声明。它必须为静态方法,而不应为公共方法(在前面的例子中,它接受默认访问级别private)。
Main方法具有void或int返回类型。所声明的Main 方法可以具有包含命令行实参的 string[] 形参,也可以不具有这样的形参。形参读取为零索引的命令行参数。与C/C++不同,程序的名称视为第一个命令行参数。
输入方法Console.ReadLine、输出方法Console.WriteLine
Console.WriteLine方法类似于C语言的printf函数,可以采用“{N[,M][:格式化字符串]}”的形式来格式化输出字符串,其中的参数含义如下。
花括号({}):用来在输出字符串中插入变量的值。
N:表示输出变量的序号,从0开始。
[,M][:格式化字符串]:可选项,其中M表示输出的变量所占的字符个数。
[:格式化字符串]:可选项,因为在向控制台输出时,常常需要指定输出字符串的格式。
格式字符 | 含义 | 示例 | 输出结果 |
---|---|---|---|
c或c | 将数据转换成货币格式 | Console.WriteLine(\”{0,5:c}\”, 123.456); | ¥123.46 |
D或d | 整数数据类型格式 | Console.WriteLine(\”{0:D4}\”, 123); | 0123 |
E或e | 科学计数法格式 | Console.WriteLine(\”{0:E4}\”, 123.456); | 1.2346E+002 |
F或f | 浮点数据类型格式 | Console.WriteLine(\”{0:f4}\”, 123.456); | 123.4560 |
G或g | 通用格式 | Console.WriteLine(\”{0:g}\”, 123.456); | 123.456 |
N或n | 自然数据格式 | Console.WriteLine(\”{0:n}\”, 123.456); | 123.46 |
X或x | 十六进制数据格式 | Console.WriteLine(\”{0:x}\”, 12345); | 30393.3.4 |
数据转换
由于ReadLine方法只能输入字符串,为了输入数值,需要进行数据类型的转换。
C#中每个数据类型都是一个结构,它们都提供了Parse方法,以用于将数字的字符串表示形式转换为等效数值,例如:
int d = int.Parse(“12”);b = int.Parse(Console.ReadLine());