C#学习入门

6

使用 Visual Studio 进行开发

注释

单行注释://

多行注释:/* */

三杠注释:///

折叠代码

            #region MyRegion
            Console.WriteLine("Hello, World!");
            #endregion

这样在行号那里会显示一个箭头,点击就可以折叠代码

变量

变量一共有14种类型:

类型

范围

sbyte

-128~127

int

-21亿~21亿多

short

-32768~32767

long

-九百万兆~九百万兆

在类型前面加上u 就是无符号的整形变量,就是说只有正数没有负数

sizeof() 可以返回变量占用内存的大小

声明常量:

const int = 1;

常量必须要被初始化,否则会报错

转义字符

\字符

这样就可以转义

换行:

\n

如果想输出斜杠:

\\

\t 可以空四个格

\b 是光标退格,会把光标退到上一个字符覆盖,所以输入123\b123 输出的是12123

\0 是空字符,没有用

\a 是警报音,会在系统想起一个警报的音效

取消转义字符:

const string = @"哈哈\哈哈";

隐式转换

小范围可以赋值给大范围自动转换成大范围的类型,反之则不行。

decimal比较特殊,无法通过隐式转换的方式去存储doublefloat

无符号的不能装有符号的

字符串复制给数字字面量的会变成ASCLL码

在输出中如果括号里面有字符串那么变量相加就是字符串拼接,如果没有就是数字相加

显式转换

            short s = 1;
            int i = 1;
            s = (short)i;
            Console.WriteLine(s);

变量类型.parse() 可以把字符串类型转为对应的类型

Convert 也可以转

            int a =  Convert.ToInt32("123");

Convert 的精度比括号转好一些,会四舍五入

变量.toString() 可以把变量转成字符型

可以用char把数字ASCLL转换成文字,这里输出的就是"帅"字

异常捕获

try
{

}
catch
{

}
finally
{

}

我们可以在catch后面加上一个括号写上Exception e 这个e 就包含了错误信息

using System;

class Program
{
    static void Main()
    {
    start:
        Console.WriteLine("请输入一个数字:");
        try
        {
            int num = int.Parse(Console.ReadLine());
            Console.WriteLine($"你输入的数字是:{num}");
        }
        catch (FormatException)
        {
            Console.WriteLine("输入格式错误,请重新输入!");
            goto start; // 跳回去重新执行
        }

        Console.WriteLine("程序结束。");
    }
}

字符串拼接

Console.WriteLine(string.Format("Hello, {0}!, My name is {1}", "World", "Water"));

输出:

Hello, World!, My name is Water

位运算符

            int a = 1;
            int b = 5;
            int c = a & b;
            Console.WriteLine(c);

& 运算符采用对位运算。1的二进制是001,5的二进制是101,将他们进行对位运算,只有两个都是1才为1

0

0

1

1

0

1

0

0

1

所以最后的结果为1

如果说&是有0则0,那么|就是有1则1

^ 在对位运算中,相同为0,不同则为1

~ 是取反位运算符。

            int a = 5;
            int b = ~a;
            Console.WriteLine(b);

这段代码的结果会是-6。因为这里的a是用int声明的,在二进制中表示就是:0000 0000 0000 0000 0000 0000 0000 0101 ,取反后就会变成:1111 1111 1111 1111 1111 1111 1111 1010

表示方式

规则(正数)

规则(负数)

原码

符号位 0 + 绝对值二进制

符号位 1 + 绝对值二进制

反码

与原码相同

符号位不变,其他位按位取反(0→1,1→0)

补码

与原码相同

反码 + 1(在最低位加 1)

+5

  • 原码:00000101

  • 反码:00000101(正数反码同原码)

  • 补码:00000101(正数补码同原码)

-5

  1. 原码:10000101

  2. 反码:11111010(符号位不变,其余取反)

  3. 补码:11111011(反码 + 1)

<< >> 分别是左移和右移

左移5位,就在后面加5个0,右移就是减去几个0

Switch

do while