【C#入门】第一天:helloworld及数据类型

近来笔者(csdn远古某人)想做些windows小应用,一番了解之后,C# + winform或者C# + wpf上手速度快,难度低,故开启了我的C#学习之旅。怕自己学习以后,长时间不用会有所遗忘,故有了【C#入门】这一系列~
本文最适于学过其他编程语言,却无C#编程基础的同学快速上手。

一、Visual studio安装及环境配置

1.安装条件

windows:win7及以上 (xp不带.net framework,需要额外安装,出问题的概率大)
内存: 8G及以上(越大越好)
安装包:自己百度下载安装,不停的下一步就好,建议不要安装在系统盘

2.环境变量配置

a)确认csc的目录

csc.exe为c#编译程序
64位:C:\Windows\Microsoft.NET\Framework64\v4.0.30319
32位:C:\Windows\Microsoft.NET\Framework\v4.0.30319
64位的电脑就选64位目录,32位的就选32位的目录
在这里插入图片描述

b) 配置环境变量

右击【计算机】-【高级系统设置】-【高级】-【环境变量】-【path】-【编辑】
输入csc的目录,注意前面没分号的话,就先输入分号,再输入csc的目录
在这里插入图片描述

二、第一个Hello,world!

1. 新建txt文档,修改后缀名为.cs

.cs文件是c#的代码文件,和java用的.java, c++用.cpp是一样的,后缀的含义是(c#, 读 c sharp,取了前两个字母cs)

2. 手输代码

using System;

class HelloWord
{
	static void Main() {
		Console.WriteLine("Hello,world!");
		Console.ReadKey();
	}
}

注意:
1.System的S大写,后面有个分号
2.方法名Main,M大写
3.需要添加Console.ReadKey();否则输出结果会一闪而过

3. 编译运行

在文件目录中,按【shift】+【鼠标右键】,选择【在此处打开命令窗口】
编译:输入 csc 你的文件名.cs
执行:你的文件名.exe
即可看到Hello,world!

三、代码解读

1. using System;

C#中的using可以理解成C语言的include,就是为了引入系统库System
System在C#中叫做命名空间(namespace),这个可以理解为一个代码集合,里面的代码可以存放在不同的文件中,只要这些文件都申明同一个namespace,一旦using这个namespace,则该namespace下的所有方法都可以用

2.static void Main() {}

Main函数为cs文件的入口函数,有就执行Main函数中的代码,没有,就不执行~和C语言、java中的main一样

3. Console.WriteLine()

这个方法其实是System.Console.WriteLine(),方法是在System命名空间下的。
函数的功能是控制台换行输出,和C语言的println,java的System.out.println一样。

四、Visual studio的使用

【新建项目】-【Visual C#】-【Windows】-【控制台应用程序】-修改名称及位置-【确定】
在这里插入图片描述系统资源管理器窗口下-【Program.cs】,点击之后在右侧的编辑窗口修改代码
在这里插入图片描述

五、变量类型

1.变量和常量:

变量命名:以字母或下划线开头,可以包含字母,下划线和数字

int a = 1;

常量:const修饰,内容不可变,如果修改了,会报错

const int a = 1;
a = 2;
Console.WriteLine(a);
Console.ReadKey();

2.常见类型

int:整形,4位
ps: 如果是从网络上获取的int类型,因为数据库中int是可以存null值,所以在接收int类型变量时,可以使用int?,后续的bool,float等均可加?,可存null值。
在这里插入图片描述
short:短整型,2位
long:长整型,8位,可以表示的数值范围比int大一些,一般用int,比较大的用long,特别大的用decimal
bool:布尔类型,只有true和false,c#是无法将int转成bool类型的,0不可以转为false
float:单精度浮点型
double:双精度浮点型,可以显示15-16位
在这里插入图片描述
ps:C#支持{0},{1}这样的格式化输出语句,{0}代表逗号后面的第1个参数,{1}代表逗号后面的第2个参数

char:字符类型,必须使是单引号,
string:字符串类型,必须使是双引号。加@可以保持原有格式,可避免格式丢失及转义字符输出时需要反复转义。
ps:php和python中的单双引号可以混用,C#可不行哦(php中单双引号在动态变量用的时候,有少许不同,如感兴趣,自行百度)
在这里插入图片描述其他类型byte,sbyte,uint,ushort,decimal不是很常用,有兴趣请自行了解

3.常见类型转换

string转int: int.Parse() 或int.Tryparse()
string转float,double同理,float.Parse(),double.Parse()
在这里插入图片描述
其他类型转string:变量名.ToString()

4.string知识补充

string.Empty和空字符串""等同,string已经创建出来了,里面内容为空而已,相当于盖好了房子,人还没住进去
null代表字符串还没创建,相当于房子还没开始盖

string x = null;
string y = string.Empty;
string z = "";
Console.WriteLine(x == "");
Console.WriteLine(y == "");
Console.WriteLine(z == "");
Console.ReadKey();

string和StringBuilder,这个也是老生常谈的一个问题,在java编码规范中,动态添加多个字符串必须使用StringBuilder而不能使用string,C#也是一样的。
用下面代码跑出的结果
100个字符,可以忽略不计
1000个字符,StringBuilder比string快1ms
10000个字符,StringBuilder比string快10多倍
100000个字符,StringBuilder 18ms左右,string一直在算。。。

// namespace在代码顶部添加
using System.Diagnostics;

 // string和stringbuilder,添加字符的时长比较,2万个字符就很明显,10万字符str计算要等很久,stringbuilder 18ms左右,1000字符以内仅相差1ms左右
Stopwatch sw = new Stopwatch();

sw.Start();

//string a = string.Empty;
//for (int i = 0; i < 1000; i++)
//{
//    a += i.ToString();
//}

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++)
{
    sb.Append(i.ToString());
}


sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Console.ReadKey();

5.数组

数组:基本类型的有序集合
数组的常见写法:

string[] arr1 = new string[]{"123", "abc", "zxy"};
int[] arr2 = new int[10];

猜你喜欢

转载自blog.csdn.net/guggle15/article/details/123269936
今日推荐