快速掌握C#语言基础知识点(1.基础数据类型)

关注我的动态

直接上代码:

cs 复制代码
namespace _01.基础数据类型
{
    internal class Program
    {
        /// <summary>
        /// 打印c#缺省类型的最大值、最小值和占用空间大小(字节)
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {

            Show<int>(sizeof(int));
            Show<long>(sizeof(long));
            Show<float>(sizeof(float));  
            Show<double>(sizeof(double));
            Show<decimal>(sizeof(decimal));
            Show<bool>(sizeof(bool));
            Show<char>(sizeof(char));
            Show<sbyte>(sizeof(sbyte));
            Show<short>(sizeof(short));
            Show<uint>(sizeof(uint));
            Show<ushort>(sizeof(ushort));
            Show<ulong>(sizeof(ulong));
            Show<byte>(sizeof(byte));
        }

        static void Show<T>(int size)
        {
            T maxValue;
            T minValue;

            GetDefaultTypeMaxValueAndMinValue<T>(typeof(T),
                out maxValue, out minValue);
            PrintDefaultTypeInfo(typeof(T), maxValue, minValue, size);

        }

        static void PrintDefaultTypeInfo<T>(Type type, T maxValue, T minValue, int size)
        {
            Console.WriteLine($"类型:{type.FullName},最大值:{maxValue}; 最小值:{minValue};大小:{size}"); 
        }

        //求默认类型的最大值和最小值
        static void GetDefaultTypeMaxValueAndMinValue<T>(Type type, 
            out T maxValue, out T minValue)
        {
            maxValue = default(T);
            minValue = default(T); 
            var prop = type.GetField("MaxValue");
            if (prop != null)
            {
                maxValue = (T)prop.GetValue(null);
            }
            prop = type.GetField("MinValue");
            if (prop != null)
            {
                minValue = (T)prop.GetValue(null);
            }
        }
    }
}

//类型: System.Int32,最大值:2147483647; 最小值:-2147483648; 大小:4
//类型:System.Int64,最大值:9223372036854775807; 最小值:-9223372036854775808; 大小:8
//类型:System.Single,最大值:3.4028235E+38; 最小值:-3.4028235E+38; 大小:4
//类型:System.Double,最大值:1.7976931348623157E+308; 最小值:-1.7976931348623157E+308; 大小:8
//类型:System.Decimal,最大值:79228162514264337593543950335; 最小值:-79228162514264337593543950335; 大小:16
//类型:System.Boolean,最大值:False; 最小值:False; 大小:1
//类型:System.Char,最大值:?; 最小值:; 大小:2
//类型:System.SByte,最大值:127; 最小值:-128; 大小:1
//类型:System.Int16,最大值:32767; 最小值:-32768; 大小:2
//类型:System.UInt32,最大值:4294967295; 最小值:0; 大小:4
//类型:System.UInt16,最大值:65535; 最小值:0; 大小:2
//类型:System.UInt64,最大值:18446744073709551615; 最小值:0; 大小:8
//类型:System.Byte,最大值:255; 最小值:0; 大小:1
相关推荐
Wang's Blog3 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
砚底藏山河4 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
今年下半年4 小时前
AI智能体项目实战记录(02):初始化 Python 项目
开发语言·人工智能·python·fastapi
Williamtym4 小时前
PickGo Lab实践:用浏览器、Python和MCP串起机器人搬运仿真
开发语言·python·机器人
DongQiShanRen5 小时前
六根硬件映射(四):归属澄清、两处不一致与卷十一总表
开发语言·人工智能·算法·rust·哈希算法·集成学习
CS创新实验室5 小时前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
quantdash_cc5 小时前
Pandas 处理分钟级股票行情:从原始数据清洗到 K 线聚合
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
yu_zhidun5 小时前
企业电脑监控软件怎么选:别只看功能清单,先看这 6 个底层能力
开发语言·电脑·php·域智盾系统
无忧.芙桃5 小时前
C++语言原理与实践(十六):多态机制讲解
开发语言·c++·多态
李纲明6 小时前
WordPress 白屏排查手册:关插件、换主题、开调试、查 PHP(附停手信号)
开发语言·php·wordpress·故障排查·白屏·插件冲突