第六式:C# 数据类型 (内力属性)

绝世
秘籍
冲儿,江湖中人的内力各有不同。有至刚至阳的九阳神功,也有至阴至柔的葵花宝典。
在 C# 的世界里,数据也有不同的“属性”,我们称之为数据类型 (Data Types)
数据不就是数字吗?难道还有分公母?
当然不只数字!有整数、小数,还有文字(字符串),甚至还有真假(布尔值)。
如果把内力(数据)存错了容器(变量),轻则溢出,重则走火入魔!

1. 值类型 (Value Types) - 刚猛外家拳

这些数据直接存储在栈(Stack)中,存取速度快,像外家功夫一样直接。

类型 描述 江湖比喻
int 整数 普通的少林长拳,最常用。范围 -21亿 到 21亿。
long 长整数 降龙十八掌,内力深厚,能存很大的数。
float 单精度浮点 轻功水上漂,带小数,但精度一般(末尾要加 f)。
double 双精度浮点 凌波微步,精度更高,默认的小数类型。
decimal 高精度小数 算盘神功,专门用来算钱的,绝对精确(末尾要加 m)。
char 字符 暗器,一次只能发一枚(单引号 'A')。
bool 布尔值 是非剑法,只有两招:true (真) 或 false (假)。

2. 引用类型 (Reference Types) - 绵柔内家拳

这些数据存储在堆(Heap)中,栈里只存一个指向它们的地址(指针)。


using System;

namespace DataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            // 刚猛外家拳
            int age = 25;               // 令狐冲今年25岁
            long internalEnergy = 999999999L; // 内力值爆表
            
            // 轻灵身法
            double height = 175.5;      // 身高
            float weight = 65.5f;       // 体重(注意那个 f)
            
            // 算账专用
            decimal money = 100.00m;    // 盘缠(注意那个 m)
            
            // 是非剑法
            bool isDrunk = true;        // 令狐冲喝醉了吗?是
            
            // 字符串(珍珠项链)
            string name = "令狐冲";
            char sect = '华';           // 华山派(单字)

            Console.WriteLine(name + " 也是 " + sect + "山派的!");
        }
    }
}
        
必须牢记!float 后面不加 fdecimal 后面不加 m,都会被视为 double
这就像你明明练的是剑法,却拿了一把刀,成何体统!
⚖️

动手时刻:量体裁衣

请定义合适的变量来存储以下江湖信息:

  1. 东方不败的性别(提示:可能需要自定义,或者用 bool 表示是否男?)
  2. 辟邪剑谱的价格(9.98两银子)
  3. 任盈盈的名字
查看参考答案

bool isMale = true; // 或者用 string gender = "不详";
decimal price = 9.98m; // 涉及钱财,推荐用 decimal
string name = "任盈盈";
                    

成就解锁:【内力鉴别师】 获得:数据透视眼