C#数据类型 --------- 编程 上位机开发 Windows界面编程

#C# 编程 工业上位机开发 Windows界面编程

基本数据类型

整数类型:int、short、byte
类型位数范围后缀
int32位-2,147,483,648 ~ 2,147,483,647
uint32位0 ~ 4,294,967,295u
long64位-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807L
ulong64位0 ~ 18,446,744,073,709,551,615ul
short16位-32,768 ~ 32,767
ushort16位0 ~ 65,535us
byte8位0 ~ 255
sbyte8位-128 ~ 127

代码案例:

int x = 10; // 声明一个int32整数变量 x,表示有符号整数,范围为 -2147483648 到 2147483647。并初始化为 10  
Console.WriteLine("类型为:" + x.GetType().Name + "数据为:" + x);
 
short x2 = 10;// 声明一个int16整数变量 x,表示有符号整数,范围为 -32768 到 32767。并初始化为 10
Console.WriteLine("类型为:" + x2.GetType().Name + "数据为:" + x2);
 
byte x3 = 10;// 声明一个Byte整数变量 x,表示有符号整数,范围为 -128 到 127。并初始化为 10
Console.WriteLine("类型为:" + x3.GetType().Name + "数据为:" + x3);
浮点类型:floatdouble

float x4 = 10;//float 类型表示单精度浮点数,范围为 -3.40282e+38 到 3.40282e+38。精度相对较低  :内存少
Console.WriteLine("类型为:" + x4.GetType().Name + "数据为:" + x4);
 
double x5 = 10;//double 类型表示双精度浮点数,范围为 -1.7976931348623157e+308 到 1.7976931348623157e+308。double 类型的精度相对较高,可以更好地表示小数和控制精度。
Console.WriteLine("类型为:" + x5.GetType().Name + "数据为:" + x5);
布尔类型:bool字符串类型
 
bool x6 = true;//布尔类型只有一个:bool。它用于表示逻辑值,即true或false。
Console.WriteLine("类型为:" + x6.GetType().Name + "数据为:" + x6);
浮点类型:float、double
特点floatdouble
位数32位64位
精度6-9位有效数字15-17位有效数字
范围±3.4e38±1.7e308
内存占用4字节占用8字节
示例float f = 1.2345f;double d = 1.2345;
适用场景对内存要求高对精度要求高
float x4 = 10;//float 类型表示单精度浮点数,范围为 -3.40282e+38 到 3.40282e+38。精度相对较低  :内存少
Console.WriteLine("类型为:" + x4.GetType().Name + "数据为:" + x4);
 
double x5 = 10;//double 类型表示双精度浮点数,范围为 -1.7976931348623157e+308 到 1.7976931348623157e+308。double 类型的精度相对较高,可以更好地表示小数和控制精度。
Console.WriteLine("类型为:" + x5.GetType().Name + "数据为:" + x5);
布尔类型:bool类型:
特性说明
取值true, false
声明bool b = true;
用途逻辑条件判断
运算符返回bool值
内存1字节
转换不能转换为int,可转换为byte/enum

示例:

bool b1 = true;
bool b2 = (1 == 1); 

if (b1 && !b2)
{
  // 条件成立时执行
}

byte n = (byte)b1; // 1
Weekday d = (Weekday)b2; 
字符串类型
特性stringchar
类型引用类型值类型
声明string str = “Hello”char c = ‘A’
默认值null‘\0’
拼接+ 或 Concat()不能直接拼接
比较== 或 Compare()直接 == 比较
长度Length 属性固定为1个字符
索引str[0]无索引
转换ToString(), Parse()ToString(), (int)或(char)
格式化String.Format()
常用方法stringchar
---
搜索IndexOf()
替换Replace()
分割Split()
子串Substring()
反转Reverse()
大小写ToUpper()/ToLower()ToUpper()/ToLower()
//- 基础操作:拼接、比较、搜索、替换、分割、转换、长度等
//- 高级操作:子串、反转、大小写转换、字符访问
//- 格式化、连接等辅助操作
        string str1 = "Hello";
        string str2 = "World!";//string 类型用于表示字符串
        char x7 = 'A';//单字符
        Console.WriteLine("单字符:" + x7 + "   字符串:" + str1);
        Console.WriteLine($"单字符:{x7}数据类型为:{x7.GetType().Name}");
        //字符串长度
        Console.WriteLine($"字符:串{str1}数据类型为:{str1.GetType().Name}长度为:{str1.Length}");
        // 1. 拼接字符串
        string result = str1 + " " + str2;//拼接
        Console.WriteLine($"拼接字符串:{result}");
        //2.比较字符串
        string str11 = "Hello";
        string str111 =  new string(str1);
        bool isEqual = str1 == str11;//内容比较
        Console.WriteLine($"内容比较==:最简单:{isEqual}");
 
        bool isEquals1 = string.Equals(str1,str11, StringComparison.OrdinalIgnoreCase);//与==作用基本一致,但更强大,可以指定比较规则(比如忽略大小写),相当于调用==的重载方法。
                                                   //StringComparison参数指定了比较类型,OrdinalIgnoreCase表示忽略大小写
        Console.WriteLine($"内容比较Equals:可以指定比较规则:{isEquals1}");
        int isEquals2 = string.Compare(str1,str11,true);//Compare返回整数表示比较结果,返回0表示相等。
                                                        //与Equals不同,它可以区分"abc"和"abcd"的顺序
                                                        //第二个参数指定为true,将忽略大小写。
                                                        //法语字母排序规则,并指定忽略符号
        Console.WriteLine(isEquals2);
 
        int isEquals3 = string.CompareOrdinal(str1,str11); //执行简单的二进制比较,不考虑本地化规则,性能最好
        Console.WriteLine(isEquals3);
 
        //----------------------查看地址
        /*
        unsafe  //不安全
        {
            int* pointer = (int*)&str1;
            Console.WriteLine((int)pointer); // 打印指针整数值
            int* pointer1 = (int*)&str111;
            Console.WriteLine((int)pointer1); // 打印指针整数值
        }
        */
 
        bool isEquals4 = Object.ReferenceEquals(str1 ,str111);//地址比较
        Console.WriteLine(isEquals4);
 
       // 3.搜索字符串
        int index = str1.IndexOf("o");
        Console.WriteLine($"搜索字符串:{index}");
 
        // 4. 替换字符串
        string str12 = "Hello World!";
        string result1 = str12.Replace("World", "There");
        Console.WriteLine($"替换字符串:{result1}");
 
        // 5. 分割字符串
        string str13 = "Hello,World,World";
        string[] parts = str13.Split(',');
        Console.WriteLine($"分割字符串:{string.Join("|", parts)}");
 
        // 6. 截取子字符串
        string substr = str12.Substring(0, 5);
        Console.WriteLine($"截取子字符串:{substr}");
 
        // 7. 访问单个字符
        Console.WriteLine($"访问单个字符:{str1[0]}");
 
        // 8. 字符串反转
        string rev = new string(str12.Reverse().ToArray());//反转
        Console.WriteLine($"字符串反转:{rev}");
 
        // 9. 转换大小写
        string upper = str12.ToUpper();
        string lower = str12.ToLower();
        Console.WriteLine("转换大小写");
        Console.WriteLine(upper);
        Console.WriteLine(lower);
 
        // 10. 格式化字符串 
        string result2 = string.Format("{0} {1}", str1, str2);
        Console.WriteLine("格式化字符串:" + result1);

枚举类型:非常重要–工作

建议变量具有相关性比如一周有星期一到日,颜色:xxx–xxx,将名字映射到整数变量,如功能按键的使用,将变量映射到对应功能按键的名字

特点说明
类型值类型,不是数据结构
成员值只能取定义的枚举成员值
默认值从 0 开始自动递增
可读性提高代码可读性
switch可在switch语句中使用
运算可以比较,不能算术运算
继承继承自System.Enum
编译编译为基础整数类型
/*举例*/
// 声明一个自定义枚举类型,用于表示一周的7天
enum Weekday
{
    // 定义枚举成员 Monday,代表星期一
    // 默认情况下,第一个枚举成员的值为 1
    Monday = 1,
 
    // 定义枚举成员 Tuesday,代表星期二
    // 未手动赋值的情况下,默认自动递增,所以 Tuesday 的值为 2
    Tuesday,
 
    // 定义枚举成员 Wednesday,代表星期三
    // 值为 3
    Wednesday,
 
    // 定义枚举成员 Thursday,代表星期四 
    // 值为 4
    Thursday,
 
    // 定义枚举成员 Friday,代表星期五
    // 值为 5
    Friday,
 
    // 定义枚举成员 Saturday,代表星期六
    // 值为 6// 声明一个 Weekday 类型的变量 day,用于存储枚举值
Weekday day;
 
// 将变量 day 赋值为 Saturday 枚举成员  
// Saturday 对应的值是 5
day = Weekday.Saturday;
 
// 格式化输出 day 变量和强制转换后的 int 值
// day 打印为字符串"Saturday"
// 强制转换后打印整数 5
Console.WriteLine("{0}和{1}", day, (int)day);
    Saturday,
 
    // 定义最后一个枚举成员 Sunday,代表星期日
    // 值为 7
    Sunday
}

总结

  • 整型(int、byte等) 用于表示整数值。不同的整型表示数值范围不同。

    浮点型(float、double) 用于表示小数值。float精度较低,double精度较高。

    字符串(string) 表示文本字符串,是引用类型,支持各种字符串操作。

    字符型(char) 表示单个字符,是值类型。

    布尔型(bool) 表示真或假两个逻辑状态。

    枚举类型(enum) 定义一组命名常量,提高代码可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值