C#——基础

1、数据类型

金钱类型:decimal,用来存储金钱,值后面要加上一个m

2、占位符

// 多填多出的没有用,少填报错
Console.WriteLine("第一个数字{0},第二个数字{1},第三个数字{2}",1,2,3);

3、交换两个int型的变量,要求不使用第三方变量

int n1 = 50;
int n2 = 30;

n1 = n1-n2;
n2 = n1+n2;
n1 = n2-n1;

4、接受用户输入

string s = Console.ReadLine();

5、转义符

\b 删除前一个字符(在字符串的两端没有效果)
\\ 表示一个\
@"E:\Documents\Desktop\1.txt" 取消\在字符串中的转义作用

6、自动类型转换

我们要求等号两边的运算操作类型必须一致,如果不一致会发生隐式转换

1)小的转大的(大的转小的-->强制类型转换)
2)...

注意:***
int a = 10;
int b = 3;
double result = a/b; // 结果是3

int a = 10;
int b = 3;
double result = (a*1.0)/b; // 结果为3.33333333333333

占位符的妙用:
Console.WriteLine("{0:0.00}",result); // 表示保留2位小数

7、逻辑运算符

逻辑运算符两边放的一般都是关系表达式或者bool类型的值

&& 逻辑与
|| 逻辑或
! 逻辑非

8、字符串转int/double型

String a = "123";
double d = Convert.ToDouble(a);
int i = Convert.ToInt32(a);

9、语法结构

顺序结构:程序从Main函数进入,从上到下一行一行的执行
分支结构:if,else
选择结构:if else-if switch-case
循环结构:while do-while for foreach

if(判断条件){
// 和java一样
}else if(判断条件2){

}else{ // 如果有多个if判断,else只跟离它最近的if配对

}

10、异常捕获

try{
// 可能会出现异常的代码,出现异常后直接运行catch代码块,无论下面还有多少代码
}catch (Exception e){
// 出现异常后要做的处理
Console.WriteLine(e);
// throw; // 向外重新抛出异常,此时finally代码块不会执行
}finally{
// 发不发生异常都执行
}

11、switch-case

switch(变量或表达式的值){

case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
case 值3:要执行的代码;
break;
.....
default:要执行的代码;
break;
}

将switch后面的值与case后面的值进行比较,如果相同则走要执行的代码,如果没有匹配的,则执行default后面的代码

12、循环

while循环:
while(循环条件){
循环体;
break; // 跳出当前循环
}

do-while循环:

do{
循环体
}while(循环条件){
// 先执行循环体,在进行判断循环条件。
// 先循环,在判断,最少执行一遍循环体
}

for循环

for (int i=0;i<10;i++){
continue; // 结束本次循环,进入下次循环
}

13、三元运算

1 > 2 ? true : false

14、声明常量

const int number = 10; // 不能被重新赋值

15、枚举

枚举就是一个变量类型(作用:存数据)

语法:
[public] enum 枚举名{
值1,
值2,
值3,
....
}

注:不能在main函数中声明枚举
1)命名空间下,类外面(所有类都可以使用这个枚举)

namespace ConsoleApp1
{
public enum Gender
{
男,

}

class Program
{
static void Main(string[] args)
{
Gender g1 = Gender.男;
Gender g2 = Gender.女;

Console.WriteLine((int)g1); // 将其将转为int型,输出的是它的序号0
Console.WriteLine((int)g2); // 1
Console.WriteLine((Gender)1); // 女
Console.WriteLine((Gender)0); // 男
Console.WriteLine((Gender)3); // 这个没有枚举类型,直接打印这个数字3

Console.WriteLine(typeof(Gender)); // ConsoleApp1.Gender
Console.WriteLine(Enum.Parse(typeof(Gender),"0")); // 将字符串转为枚举类型,与字符串转int/double不同是使用enum这个类进行转换的

Console.ReadLine();
}
}
}

16、结构

结构有个屌用??

可以帮我们一次性声明多个不同类型的变量
语法:
[public] struct xxx{
public string _name; // 不叫变量,叫字段
public int _age; // 规范,前面加_
...
}

17、数组

一次性存储多个相同类型的变量

声明数组的方式:
int nums = new int[10]; // 其中元素全是0
int nums2 = {1,2,3,4}

赋值方法;
nums[0] = 10086;

18、方法

函数就是将一堆代码进行重用的一种机制

语法:
[public] [static] 返回值类型 方法名([参数列表]){
方法体;
}

out参数
如果在一个方法中要返回多个不同类型的值,可以使用out参数

static void Main(string[] args)
{
int[] numbers = {1, 2, 3, 4, 5};

int max;
int min;

Test(numbers,out max,out min);

Console.WriteLine(max);
Console.WriteLine(min);

Console.ReadLine();
}

// max,min为多余的返回值
public static void Test(int[] numbers,out int max,out int min)
{
// 假设数组中第一个值为max,第二个值为min
max = numbers[0];
min = numbers[1];
}

ref参数
将值传递改成引用传递

static void Main(string[] args)
{
int a = 3;
Test(ref a);
Console.WriteLine(a); // 如果不加ref,打印的值为3;加上ref打印的值为5
Console.ReadLine();
}

public static void Test(ref int a)
{
a = a + 2;
}

params可变参数
可以传不定的参数,将其放进一个数组中

static void Main(string[] args)
{
Test(1,2,3);
}

public static void Test(params int[] list) // 在可变参数后面不能再加其它的参数
{
foreach (var i in list)
{
Console.WriteLine(i);
}
Console.ReadLine();
}


19、return作用

1)立即结束这个方法
2)返回值

猜你喜欢

转载自www.cnblogs.com/x54256/p/9066202.html