第二单元 常用快捷键,注释,变量

1. 注释

不写注释的程序员都是耍流氓!!名字瞎起是更是土匪!!!

1. 单行文本注释

static void Main(string[] args)
{
    // 这是单行文本注释,向控制台输出一段字符串
    Console.WriteLine("Hello World!");
    Console.ReadLine();// 接收键盘输入的一段字符串
}

2. 多行文本注释

/**
 * 文本注释分为三种
 * 1. 单行文本注释
 * 2. 多行文本注释
 * 3. 文档注释
 */
static void Main(string[] args)
{
    /*
     Console.WriteLine("Hello World!");
     Console.ReadLine();
     */
}

 

3. 文档注释

用于对类、方法、属性进行标注说明。

/// <summary>
/// 程序的主类,CLR会自动找到此类,如果缺少Program类,程序报错
/// </summary>
class Program
{
​
    /// <summary>
    /// 程序的主入口,程序刚运行时,CLR会自动找到此方法进行执行
    /// </summary>
    /// <param name="args">程序在运行时,可以传递的参数</param>
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
        Console.ReadLine();
​
    }
}

 

程序在编译时,不会将注释文本进行编译。一般来说,注释都是写给程序员看的,方便别人进行阅读。

2. VS中的常用快捷键

  • 自动对齐格式 : Ctrl +K+D

  • 撤销: Ctrl +Z, 复制: Ctrl +C, 粘贴: Ctrl +V

  • 保存: Ctrl +S

  • 弹出智能提示: Ctrl +J

  • 注释所选代码 : Ctrl +K+C

  • 取消所选注释: Ctrl +K +U

  • 查看帮助文档: F1

  • 调试运行: F5

  • 运行(不调试): Ctrl + F5

  • 折叠代码:#region #EndRegion

3. 变量

人的大脑有脑记忆,可以用于存储以前发生过的事物,同理,计算机的内存就相当于人的大脑,它用于存储数据,而计算机中的变量就是就相当于现实生活发生过的一件件事一样,保存于内存中。于是我们可以把变量称为用于存储数据的容器

现实生活中的事物有很多种类型:

  • 衣服 200 块钱 ,整数类型

  • 小明的体重是:60.3 kg, 小数类型

  • 圆周率: PI ,3.1415926 , 高精度小数类型

  • 性别: M,W 字符类型

  • “系统当前繁忙,请稍候再拔”, 字符串类型

  • 季节:春夏秋冬,固定枚举类型

  • 生日: 1998-08-08, 时间类型

  • 。。。。。。

1. 数据类型

  • 变量若按范围分类,可以分为:局部变量,全局变量

  • 按成员分类:成员变量,非成员变量

  • 按内存分配分类: 值类型变量,引用类型变量

值类型

存储在栈内存区的数据称为值类型, 继承(派生)于System.ValueType 类,而ValueType 继承(派生)于System.Object, 正所谓 一切皆为object(对象)

类型描述范围默认值全称
bool 布尔值 True 或 False False System.Boolean
byte 8 位无符号整数 0 到 255 0 System.Byte
char 16 位 Unicode 字符 U +0000 到 U +ffff '\0' System.Char
decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M System.Decimal
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D System.Double
float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F System.Single
int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0 System.Int32
long 64 位有符号整数类型 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L System.Int64
sbyte 8 位有符号整数类型 -128 到 127 0 System.SByte
short 16 位有符号整数类型 -32,768 到 32,767 0 System.Int16
uint 32 位无符号整数类型 0 到 4,294,967,295 0 System.UInt32
ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0 System.UInt64
ushort 16 位无符号整数类型 0 到 65,535 0 System.UInt16
enum 枚举数列表的常量组成的特殊数据类型     System.Enum
struct 结构体,封装小型相关变量组,不常用      

不常用的数据类型:sbyte,uint,ulong,ushort,struct

引用类型

继承(派生)于 System.Object

存储在堆内存区的数据称为引用类型。

声明引用类型的关键字:class(类), interface(接口), delegate(委托)

C# 9.0 推出了 record( 记录) 类型.

内置引用类型:dynamic, object, string

2. 值类型的使用

bool 真假类型

bool result = false; // = 代表赋值,将false 赋值给result变量
if (result==true)
{
    Console.WriteLine("result的值为真");
}
else
{
    Console.WriteLine("result的值为假");
}

if (!result) // 相当于 result==false
{
    Console.WriteLine("result的值为假");
}

if (result) // 相当于 result==true
{
    Console.WriteLine("result的值为真");
}

 

int 整形

int age = 30; // 声明一个整数类型
Console.WriteLine("我的年龄是{0}岁",age);

 

long 长整形

long money = 300000L; // 长整形 ,以L结尾表示为长整形
long money2 = 30; // 30是int 类型,但money2 却是长整形,存在隐式转换

 

byte 字节

byte age = 30;
byte age2 = 20;
Console.WriteLine("小明的年龄是{0},小红的年龄是{1}",age,age2);

char 字符

char sex = '';
char sex2 = '';
Console.WriteLine("小明的性别是{0},小红的性别是{1}",sex,sex2);

 

float 单精度小数

float price = 15.2f; // 单精度,注意要以f 或者F 结尾

double双精度小数

double price= 3.14d; // 双精度,注意要以d 或者D 结尾

 

decimal 高精度小数

decimal deciaml_pi = 3.141592614159261415926m;// 结果:3.141592614159261415926
double double_pi = 3.141592614159261415926d;  // 结果:3.1415926141592614
float float_pi = 3.141592614159261415926f;    // 结果:3.1415925

Console.WriteLine($"decimal小数{deciaml_pi},double 小数{double_pi},float小数:{float_pi}");

 

short 短整形

short money = 30; // 短整形,30是 int类型,money是short类型,存在隐式转换

3. string 字符串

字符串是一串值不可变的字符数组。注意,是指向的值不变。

// 方式1(推荐):直接使用字符串赋值
string msg="china";
Console.WriteLine(msg);

// 方式2:字符数组
string msg2 = new string(new char[]{ 'c', 'h', 'i', 'n', 'a' });
Console.WriteLine(msg2);

 

为什么String指向的值不变

string msg= "china";
msg="chinese"; 
Console.WriteLine(msg); // 输出结果 chinese,不是说好的值不变么?

 

从上图中可以看出, msg存在栈内存中,字符串是引用类型,值存储于堆内存中。刚 开始msg指向“china” 这个字符串,后来重新赋值后, msg被重新指向新的内存地址,也就是“chinese”。

并不是值被修改了,而是msg指向的内存地址变了而已

4. 变量命名规范

  1. 所有命名必须有意义

  2. 本地变量命名第一个字母小写,其他单词首字母大写:id, firstName, 我们称之为 Camel 命名法(小驼峰命名法)

  3. 变量只能是 "_" 下划线, 数字 ,字母组成,并且只能是下划线或者字母开头,不能是关键字或者保留字

5. C# 中的关键字

 

6. 常量

常量是在编译时设置其值并且永远不能更改其值的字段。 使用常量可以为特殊值提供有意义的名称,而不是数字文本(“幻数”)。

在 C# 中,常量不能被static 修饰,如:public static const string SITE_NAME = "任我行网络科技"; 则是错误的定义格式。

若要定义整型类型(intbyte 等)的常量值,请使用枚举类型。 有关详细信息,请参阅枚举

class Program
{
    public const double PI = 3.14159;
    public const int PRICE_OF_GOLD = 380; // 金价
    public const string SITE_NAME = "任我行网络科技";
    static void Main()
    {
        double radius = 5.3;
        double area = PI * (radius * radius);
        int totalPrice = 3 * PRICE_OF_GOLD; 
        Console.WriteLine(totalPrice);
        Console.WriteLine(area);
    }
}

 

常量命名规范

全大写,如果遇到多个单词,则中间以“_” 隔开,如:PRICE_OF_GOLD

7. 作业

  1. VS中常用的快捷键有哪些

  2. 文档注释可以作用在哪些地方

  3. 属于整形的类型有哪些?

  4. 值类型与引用类型的区别是什么?

  5. 判断题, 以下哪些变量的命名以及表达式是正确的

    int _a = 100;
    ​
    double b = 10.2;
    ​
    int 2a= 10;
    ​
    int a2 = 10;
    ​
    int b$=20;
    ​
    float c = 20.5;
    ​
    decimal c2 = 20.5;
    ​
    short d = 128;
    ​
    short d_2 = 10;
    ​
    long e = 20 ;
    ​
    long e2 = 20.2;
    ​
    string s = 'hello';
    ​
    char ch = 'world';

  

视频教程:

C#入门到精通 - 网易云课堂 (163.com)

posted @ 2023-05-29 17:04  誉尚学教育  阅读(264)  评论(0编辑  收藏  举报