一、开发环境
IDE:集成开发环境
Visual studio2019
(一)下载地址
Visual Studio 2019
下载地址:https://visualstudio.microsoft.com/downloads/
Visual Studio 2019 Community 社区版(免费版)
简体中文版下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16
Visual Studio 2019 Professional 专业版
简体中文版下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Professional&rel=16
Visual Studio 2019 Enterprise 企业版
简体中文版下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?
Visual Studio 2019 for Mac 下载地址 V8.x.x各种版本官方下载网址
Visual Studio 2019 for Mac
下载地址:https://visualstudio.microsoft.com/zh-hans/vs/mac/
Visual Studio 2019 Community for Mac 社区版(免费版)
简体中文版下载地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio-mac/?sku=communitymac&rel=16
Visual Studio 2019 Professional for Mac 专业版
简体中文版下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio-mac/?sku=professionalmac&rel=16
Visual Studio 2019 Enterprise for Mac 企业版
简体中文版下载地址:https://visualstudio.microsoft.com/thank-you-downloading-visual-studio-mac/?sku=enterprisemac&rel=16
(二)Visual Studio使用基础
①创建新项目——》控制台应用程序(C#)——》配置新项目——》创建
配置新项目:每一个项目对应的是一个解决方案,一个解决方案是包含多个项目的,可以认为一个项目是一个小模块。解决方案名称是不可以包含特殊符号,如#。
尽量放在C盘之外的其他盘
②更换背景颜色:工具——》选项——》环境——》常规
③字体和颜色:推荐使用JetBrains Mono(百度搜索下载)和Consolas字体
④行号显示问题:工具——》选项——》文本编辑器——》C#——》行号
⑤在解决方案下新建项目:解决档案(右键单击)——》添加——》新建项目
每一个项目下都有一个默认的程序
(三)基本知识
①注释:使用双斜杠“//”(注释:Ctrl+c Ctrl+k 取消注释:Ctrl+c Ctrl+u)
②引入命名空间:using+命名空间,命名空间相当于是对程序进行一个打包分类,方便引用。
③程序结构:
④输出
·(write和writeLine的区别):write不换行
·转义字符
但是在输出前加上@,就去掉了转义功能
Console.WriteLine(@"c:\\a\\b");
⑤输入
//输入
string str = Console.ReadLine("请输入你的数字:");
int strInt = Convert.ToInt32(str);
//转换:只能将整数转换为整数
Convert.ToInt32(str);
//简写
int a = Convert.ToInt(strInt + ".");
⑥关于C#
代码——》程序集(dll或exe)
程序集在运行时会编译成机器指令
二、语法知识
(一)基础知识
1、变量
①类型:
②定义(声明+初始化)
eg:创建一个容器,类型是int,名字是age
//声明
int age;
//赋值(初始化)
age = 10;
2、字符
①定义(只能存放一个字符)
char b = 'b';
②强制类型转换
int a = 97;
char b = (char)a;
3、字符串
①基础
//定义
string str = "www.happy.com";
//加法相当于拼接
string str2 = "123" + "456";
string str3 = str + "123";
//输出
Console.WriteLine(str);
②字符串的格式化输出
Console.WriteLine(a + "+" + b + "=" + {a=b})
//第一种
Console.WriteLine("{0}+{1}={2}",a,b,a+b);
//第二种
Console.WriteLine()
③创建string对象
·通过给stirng变量指定一个字符串
·通过string类构造函数
·通过使用字符串串联运算符(+)
·通过检索属性或者调用一个返回字符串的方法
·通过格式化方法来转换一个值或者对象为它的字符串表达形式
④String类的属性
⑤常用方法
·ToLower():将字符串中的大写字符变为小写
·ToUpper():将字符串中的小写字符变为大写
·Trim():去除字符串最前面和最后面的空格
·TrimStart():只去除开头的空格
·TrimEnd():去除后面的空格
·Split():根据要求进行分割
4、命名规则
①驼峰命名法(camel命名):首个单词的首字母小写,其他每个单词的第一个字母都大写。
②Pascal命名:每个单词的第一个字母都大写,如果遇到英文字母的缩写则全部大写
注:变量使用camel命名法,方法和类使用Pascal命名法
③命名规则:命名不能和关键字重名
5、运算符
6、流程控制
①if分支语句
②for循环
③switch语句
④while循环
⑤do_while循环
7、数组
//声明数组
dataType[] arryName;
//初始化
int[] age = new int[10];
//赋值
age[0] = 10;
//声明并赋值
int[] age = {10,15,12,13};
//初始化并赋值
int [] marks = new int[5] { 99, 98, 92, 97, 95};
int [] marks = new int[] { 99, 98, 92, 97, 95};
//也可以赋值一个数组变量到另一个目标数组变量中。在这种情况下,目标和源会指向相同的内存位置
int [] marks = new int[] { 99, 98, 92, 97, 95};
int[] score = marks;
8、函数(方法)
几个要素:返回值、方法名、参数
//语法格式
[public] [static] 返回值类型 方法名字([参数列表])
{
方法体
}
static int add(int a,int b){
return a + b;
}
访问修饰符
成员类的默认可用修饰符:
函数的返回值类型:https://c.biancheng.net/csharp/function.html
9、参数数组
static int add(int[] array)
{
int sum = 0;
for(int i = 0;i < array.lenth;i++)
{
sum += array[i];
}
}
int sum = add(new int[] {2,4,8});
10、方法的重载(overLoad)
函数名相同,参数不同,这个就叫函数的重载。系统根据参数类型去调用函数。
11、常量
常量是一个固定不变的值。
将常量变成变量(类似于C语言的宏定义),比如PI:
const int j = 100;
12、枚举类型
每个枚举类型对应一个值。后面一个的值会相对于前面一个加一,可以进行赋值。
先定义后使用:
enum RoleType//枚举类型的名字
{
//枚举类型的值
Mage,
Archer,
Assassin,
Tank,
Support,
Warrior
}
//假如创建一个职业是刺客(使用)
RoleType roleType = RoleType.Tank;
//判断(当成一个正常的变量使用就可以)
if(roleType==RoleType.Archer)
{
}
13、结构体
将某一类的变量进行整合,变成一个新的数据类型。
//定义
struct studentInfo
{
public int age;
public string name;
public int ID;
public int grade;
}
//创建学生
studentInfo student1;
//存储信息
student1.age = 18;
//通过数组管理学生
StudentInfo[] students = new StudentInfo[10];
students[0].age = 18;
14、委托
存储函数的引用的类型。
只有函数头没有函数体。
dalegate double MyDelegate(double param1,double param2);
//该函数为了方便委托引用
static double Mutiple(double param1,double param2)
{
return param1 * param2;
}
//在mian函数中声明变量
MyDelegate delegate;
//指向另一个函数(参数类型和返回值列表要一致)
delegate = Mutiple;
//
Console.WriteLine(delegate(2,4));