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());