当前位置: 首页 > news >正文

C#环境与数据类型

文章目录

      • C#环境
        • .NET 框架
        • 集成开发环境
      • 创建一个C#项目
      • 数据类型
        • 值类型
        • 引用类型
          • 对象类型object
          • 动态类型dynamic
          • 字符串类型string
        • 指针类型
      • 类型转换
        • 隐式转换
        • 显示转换(强制转换)
        • C#提供的类型转换方法
          • Convert类
          • Parse方法
          • TryParse方法

C#环境

.NET 框架

  C#是.NET框架的一部分,且用于编写.NET应用程序。.NET框架是一个创新的平台,可以编写Windows应用程序、web应用程序、web服务。

集成开发环境

  visual studio支持C#开发。

在这里插入图片描述

创建一个C#项目

在这里插入图片描述


using System;namespace HelloWorld
{class Program{static void Main(string[] args){Console.WriteLine("Hello World!");}}
}

  运行结果为 Hello World! 。

数据类型

值类型
类型描述
bool布尔值
byte8位无符号整数
decimal128位精确的十进制值,28-29有效位数
double64位双精度浮点型
float32位单精度浮点型
int32位有符号整型
long64位有符号整型,长整型
sbyte8位有符号整数
short16位有符号整型,短整型
uint32位无符号整型
ulong64位无符号整型
ushort16位无符号整型
char16 位 Unicode 字符
using System;namespace DataType
{class Program{static void Main(string[] args){Console.WriteLine("Size of bool: {0}", sizeof(bool));Console.WriteLine("Size of byte: {0}", sizeof(byte));Console.WriteLine("Size of decimal: {0}", sizeof(decimal));Console.WriteLine("Size of double: {0}", sizeof(double));Console.WriteLine("Size of float: {0}", sizeof(float));Console.WriteLine("Size of int: {0}", sizeof(int));Console.WriteLine("Size of short: {0}", sizeof(short));Console.WriteLine("Size of long: {0}", sizeof(long));Console.WriteLine("Size of sbyte: {0}", sizeof(sbyte));Console.WriteLine("Size of uint: {0}", sizeof(uint));Console.WriteLine("Size of ulong: {0}", sizeof(ulong));Console.WriteLine("Size of ushort: {0}", sizeof(ushort));}}
}

在这里插入图片描述

引用类型

  内置的引用类型有:object、dynamic和string

对象类型object

  object是C#的通用类型中所有数据类型的终极基类(父类),所以object类型就可以被分配任何类型的值。但是在分配值之前需要先进行类型转换。当一个值类型被转变为对象类型时,被称为装箱;反之,一个对象类型转变为一个值类型是,被称为拆箱。

动态类型dynamic

  可以存储任何类型的值,编译器会自动检测数据类型。

dynamic <variable_name> = value;

namespace DataType
{class Program{static void Main(string[] args){dynamic test1 = 10;dynamic test2 = 1.5;dynamic test3 = 'a';dynamic test4 = "hello world";Console.WriteLine("test type is: {0}", test1.GetType());Console.WriteLine("test type is: {0}", test2.GetType());Console.WriteLine("test type is: {0}", test3.GetType());Console.WriteLine("test type is: {0}", test4.GetType());}}
}

在这里插入图片描述

字符串类型string

  字符串类型从对象类型中派生,可以分配任何字符串值。有两种分配形式:引号和@引号。@引号的分配形式被称为逐字字符串,转义字符、换行符、缩进空格等都会被挡住普通字符对待。

namespace DataType
{class Program{static void Main(string[] args){string str1 = "\\adc\t1";string str2 = @"\\adc\t1";string str3 = @"\\adc\t1 z
1
2
3";Console.WriteLine("str1: {0}", str1);Console.WriteLine("str2: {0}", str2);Console.WriteLine("str3: {0}", str3);}}
}

在这里插入图片描述

指针类型

  和C/C++中的指针类型一样,存放一个数据的地址。

type* pointername

类型转换

隐式转换

  不需要代码指定的转换,一般是低精度向高精度的转换。

显示转换(强制转换)

  代码中显示的写明要转换的数据类型,一般是高精度向低精度转换,或者是一个对象类型转变成另外一个数据类型。显示转换可能会出现精度丢失、数据丢失的情况。

namespace DataType
{class Program{static void Main(string[] args){// 隐式转换int a = 10;double b = a;// 显示转换int c = 256;byte d = (byte)c;double e = 1.2345;int f = (int)e;Console.WriteLine("b type is:{0},b = {1}", b.GetType(), b);Console.WriteLine("d type is:{0},d = {1}", d.GetType(), d);Console.WriteLine("f type is:{0},f = {1}", f.GetType(), f);}}
}

在这里插入图片描述

  隐式转换时,将类型转换为long时,数据类型可能还是int32,因为long没有明确的长度定义,只是说他至少是32位。

C#提供的类型转换方法
Convert类

  convert提供了一组静态方法,用于基本数据类型之间的转换。

方法描述
Convert.ToBoolean(value)将类型转换为布尔类型
Convert.ToByte(value)将类型转换为Byte类型
Convert.ToChar(value)将类型转换为Char类型
Convert.ToDateTime(value)将类型转换为DateTime类型
Convert.TDecimal(value)将类型转换为Decimal类型
Convert.ToDouble(value)将类型转换为double类型
Convert.ToInt16(value)将类型转换为短整型
Convert.ToInt32(value)将类型转换为整型
Convert.ToInt64(value)将类型转换为长整型
Convert.ToSByte(value)将类型转换为SByte类型
Convert.ToSingle(value)将类型转换为单精度浮点型
Convert.ToString(value)将类型转换为字符串类型
Convert.ToUInt16(value)将类型转换为无符号短整型
Convert.ToUInt32(value)将类型转换为无符号整型
Convert.ToUInt64(value)将类型转换为无符号长整型
Parse方法

  parse方法用于将字符串转换为对应的数值类型,如果转换失败会抛出异常。

方法描述
Boolean.Parse(string)将字符串解析为布尔类型
Convert.ToByte(value)将类型转换为Byte类型
Char.Parse(string)将类型转换为Char类型
DateTime.Parse(string)将类型转换为DateTime类型
Decimal.Parse(string)将类型转换为Decimal类型
Double.Parse(string)将类型转换为double类型
Int16.Parse(string)将类型转换为短整型
Int32.Parse(string)将类型转换为整型
Int64.Parse(string)将类型转换为长整型
SByte.Parse(string)将类型转换为SByte类型
Single.Parse(string)将类型转换为单精度浮点型
UInt16.Parse(string)将类型转换为无符号短整型
UInt16.Parse(string)将类型转换为无符号整型
UInt64.Parse(string)将类型转换为无符号长整型
TryParse方法

  类似于parse方法,但不会抛出异常,而是返回一个布尔值来表示是否返回成功。

方法描述
Boolean.TryParse(string, out bool)尝试将字符串解析为布尔类型,并返回转换结果是否成功
Byte.TryParse(string, out byte)尝试将字符串解析为Byte类型,并返回转换结果是否成功
Char.TryParse(string, out char)尝试将字符串解析为Char类型,并返回转换结果是否成功
DateTime.TryParse(string, out DateTime)尝试将字符串解析为DateTime类型,并返回转换结果是否成功
Decimal.TryParse(string, out decimal)尝试将字符串解析为Decimal类型,并返回转换结果是否成功
Double.TryParse(string, out double)尝试将字符串解析为Double类型,并返回转换结果是否成功
Int16.TryParse(string, out short)尝试将字符串解析为Int16类型,并返回转换结果是否成功
Int32.TryParse(string, out int)尝试将字符串解析为Int32类型,并返回转换结果是否成功
Int64.TryParse(string, out int)尝试将字符串解析为Int64类型,并返回转换结果是否成功
SByte.TryParse(string, out sbyte)尝试将字符串解析为SByte类型,并返回转换结果是否成功
Single.TryParse(string, out float)尝试将字符串解析为Single类型,并返回转换结果是否成功
UInt16.TryParse(string, out ushort)尝试将字符串解析为UInt16类型,并返回转换结果是否成功
UInt32.TryParse(string, out uint)尝试将字符串解析为UInt32类型,并返回转换结果是否成功
UInt64.TryParse(string, out ulong)尝试将字符串解析为UInt64类型,并返回转换结果是否成功
http://www.lryc.cn/news/400691.html

相关文章:

  • jenkins系列-06.harbor
  • kotlin get set
  • Flask包算法服务
  • Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念
  • 深度解析:景区客服系统如何助力旅游业可持续发展
  • 风险评估:IIS的安全配置,IIS安全基线检查加固
  • uniapp 截取两条数据 进行页面翻页滚动
  • python笔记(转存ipynb)------1
  • excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出
  • 邀请函|2024第八届中国太阳能电池浆料与金属化技术展
  • 图像边缘检测:技术原理与算法解析
  • 【Python星启航】少儿编程精英启蒙之旅 - 大纲
  • MATLAB的mat文件转换成json文件
  • STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)
  • 文件安全传输系统,如何保障信创环境下数据的安全传输?
  • 论文分享|AAAI2024‘北航|用大语言模型缩小有监督和无监督句子表示学习的差距
  • vue3相比于vue2有哪些新特性?
  • Gooxi受邀参加第三届中国数据中心服务器与设备峰会
  • 3个实现前端节流的方法,附代码。
  • uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】
  • 一群追星星的人,对AI的盼与怕
  • 同步IO、异步IO以及五种网络IO模式
  • IP-Guard日志数据上传至 SYSLOG 服务器操作指南
  • 线程安全(二)synchronized 的底层实现原理、锁升级、对象的内存结构
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十四)-无人机操控关键绩效指标(KPI)框架
  • 数电基础 - 半导体存储
  • 校园工会体育报名小程序的设计
  • 2024Datawhale AI夏令营---基于术语词典干预的机器翻译挑战赛--学习笔记
  • 手机下载APP (uniapp/vue)
  • python数据可视化(5)——绘制饼图