C#_数据类型

本文介绍了C#中的基本数据类型,包括8种整数类型、2种浮点类型,特别强调了decimal类型的金融计算用途。此外,还讨论了bool、char、string以及StringBuild的使用,并指出在字符串操作中StringBuild的效率优势。文章还概述了类型分类和转换,如值类型、引用类型、null、隐式类型var以及转换方法如Parse()和TryParse()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本类型

整数类型——8种

主要使用int , long 两种

类型大小范围
int32bit-2^32/2 ~ 2^32/ 2
long64bit-2^64/2 ~ 2^64/2
浮点类型——2种

float(有效位7位) , double 主要用 double, double 有效位 15~16位

using System;

namespace basicPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");//使用了Using System;所以Console前面不用加System.

            double num = 1234.1234123412341234;
            Console.WriteLine(num);//由于double类型的有效位数是15~16位,输出只能到1234.12341234123,共15位。

            double a = 2E2;//nEn表示n乘以10的n次方,所以2E2=2X10^2=200
            Console.WriteLine(a);
        }
    }
}

浮点类型——金融计算

decimal 128bit 有效位28~29 金融计算专用

字面值

整数——int
浮点数——double
指数写法——nEn 表示 n*10^n
十六进制写法——Ox开头

bool false true
char

\n 换行
\t 制表符 经常用于对齐
\ 转义
\a 发出声音

string

在字符串前面加上@可以取消转义

string str2 = @"ftp:\hhhh\uuuu\1.txt";
string str3 = "ftp:\\hhhh\\uuuu\\1.txt";//str2 跟str3输出是一样的
Console.WriteLine("@取消转义" + str2 + "\n" + str3);
StringBuild

对字符串进行修改操作时,StringBuild效率高于string。
可用计时器做个对比。
计时器的使用:

using System;
using System.Diagnostics;//使用计时器

namespace basicPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            //使用秒表stopwatch作为计时器,计时器可以用中文命名
            Stopwatch 计时器 = new Stopwatch();
            计时器.Start();//计时器开始

            计时器.Stop();//计时器结束
            Console.WriteLine(计时器.ElapsedMilliseconds);//输出时间
        }
    }
}

string 和 StringBuild 用时对比:

using System;
using System.Diagnostics;//使用计时器
using System.Text;

namespace basicPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            //使用秒表stopwatch作为计时器,计时器可以用中文命名
            Stopwatch 计时器 = new Stopwatch();
            计时器.Start();//计时器开始
            string str1 = string.Empty;
            for(int i = 0; i < 100000; i++)
            {
                str1 += i.ToString();
            }
            计时器.Stop();//计时器结束
            Console.WriteLine("string用时:" + 计时器.ElapsedMilliseconds);//输出时间

            计时器 = new Stopwatch();
            计时器.Start();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 100000; i++)
            {
                sb.Append(i.ToString());
            }
            计时器.Stop();
            Console.WriteLine("StringBuild用时:" + 计时器.ElapsedMilliseconds);
        }
    }
}

输出:
string用时:10220
StringBuild用时:4

类型分类

1、值类型:所有基本类型
2、引用类型:string等
3、null只能用户引用类型,表示没有引用任何对象;
4、string.empty等价于 “”,不等价于null;
5、可空修饰:int?专用于数据库中int类型值为null的情况;
6、隐式类型:var 值的类型是确定的的时候,可以var代替。

类型转换

1、显式转换 ——由高到低,checked 用于检查值范围是否溢出


    int a;
    checked
    {
    a = int.MaxValue;
    a = a + 1;
    }
     Console.WriteLine(a);

2、隐式转换——由低到高,自动转换
3、转换函数
.Parse()
.TryParse()
.toString

			var str1 = Console.ReadLine();
            var str2 = Console.ReadLine();
            //Console.WriteLine(str1 + str2);//此时是字符串相连
            //int a = int.Parse(str1);//利用.Parse()将字符串转换为int,double.Parse(str)也是一样的用法
            //int b = int.Parse(str2);
            //Console.WriteLine(a + b);//此时输出数字相加

            /// 当输入的字符串不是数字时,以上的.Parse()转换会出现问题。需要用到tryParse()
            int c, d;
            if(int.TryParse(str1, out c) && int.TryParse(str2, out d)){
                Console.WriteLine(c + d);
            }
            else {
                Console.WriteLine("解析错误!");
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值