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.mzph.cn/bicheng/46636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf文件怎么转换为jpg图片?这几种转换方法操作起来很简单!

pdf文件怎么转换为jpg图片&#xff1f;在数字化洪流席卷职场的当下&#xff0c;PDF文档虽一度稳坐信息传输与储存的宝座&#xff0c;却逐渐显露出其在效率与便捷性追求中的疲态&#xff0c;随着技术疆界的不断拓宽&#xff0c;我们愈发深刻地意识到&#xff0c;PDF那复杂的格式…

逆向案例十八——某医药平台登录

网址&#xff1a;aHR0cHM6Ly91c2VyLjkxMTYwLmNvbS9sb2dpbi5odG1s 找到登陆包&#xff0c;发现用户和密码还有token都进行了加密 跟栈分析&#xff0c;进入第三个栈&#xff0c;找到加密位置。 找到加密位置&#xff0c;仔细分析。发现token$(#token).val(),根据之前的经验&…

如何利用windows本机调用Linux服务器,以及如何调用jupyter界面远程操控

其实这篇文章没必要存在&#xff0c;教程太多了 参考博客&#xff08;1 2 3&#xff09;&#xff0c;如侵删 奈何网上的大神总是会漏掉一些凡人遇到的小问题 &#xff08;1&#xff09; 建议下载PuTTy for windows&#xff0c;从而建立与远程服务器的SSH连接 需要确认目标服…

【RAGFlow】Ubuntu系统下实现源码启动RAGFlow

一、RAGFlow 是什么&#xff1f; RAGFlow 是一款基于深度文档理解构建的开源 RAG&#xff08;Retrieval-Augmented Generation&#xff09;引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程&#xff0c;结合大语言模型&#xff08;LLM&#xff09;针对用…

平价养猫最值得入的主食冻干,希喂生骨肉冻干喂养测评

不少猫主人反映&#xff0c;自家的猫咪体型偏瘦&#xff0c;体质较弱&#xff0c;尤其是在季节变换时更易出现问题&#xff0c;如敏感、掉毛严重、食欲下降等。听说生骨肉冻干富含营养且易于吸收&#xff0c;能显著改善猫咪体质&#xff0c;便纷纷尝试。然而&#xff0c;未加甄…

如何优雅的处理字节类型数据

原文:赵侠客 前言 字节&#xff08;Byte&#xff09;是计算机信息技术用于计量存储容量的一种基本单位&#xff0c;通常简写为B,1Byte8bit,在ASCII编码中1Byte可以表示一个标准的英文字符&#xff0c;包括大写字母、小写字母、数字、标点符号和控制字符等&#xff0c;共128个不…

nginx前端部署配置

nginx前端部署配置 Nginx部署项目 1、yarn build打包Vue项目 2、打开nginx.conf文件,配置对应的信息 nginx.conf location / {root C:\Users\17542\Desktop\rrpject-v2\dist;root index.html index.htm;try_files $uri $uri/ router; //解决页面刷新404问题 } location…

艾迈斯欧司朗最新推出的DURIS® LED将引领柔性多变照明新时代

中国 上海&#xff0c;2024年7月15日——全球领先的光学解决方案供应商艾迈斯欧司朗&#xff08;瑞士证券交易所股票代码&#xff1a;AMS&#xff09;今日宣布&#xff0c;艾迈斯欧司朗最新推出的DURIS E 2835 LED&#xff0c;实现从封装工艺到出光性能的升级与创新。这款LED采…

PyQt5图形界面--基础笔记

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QLabel, QLineEdit from PyQt5.QtGui import QIcon, QFont, QPixmap import sys https://www.bitbug.net/ 将图片转换为ico格式, 用来更改打包的文件图标 -F 只产生exe文件, 其他临时文件不产生 -…

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用

一、Kubernetes 的基本概念和术语 一、资源对象 ​ Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的&#xff0c;而资源对象在总体上可分为以下两类: 1、某种资源的对象 ​ 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume&#xff09;。 2、…

408数据结构-图的应用3-有向无环图、拓扑排序 自学知识点整理

前置知识&#xff1a;表达式&#xff0c;图的遍历 有向无环图描述表达式 有向无环图&#xff1a;若一个有向图中不存在环&#xff0c;则称为有向无环图&#xff0c;简称 D A G DAG DAG图 。 &#xff08;图片来自王道考研408数据结构2025&#xff09; 由王道考研-咸鱼学长的讲…

emqx(v5.0)常见问题

emqx&#xff08;v5.0&#xff09;常见问题 1 官方常见问题解答2 EMQX 启动时日志提示 “WARNING: Default (insecure) Erlang cookie is in use.” 应该怎么办&#xff1f;3 EMQX 启动时日志提示“filed to merge schema”&#xff1f; 1 官方常见问题解答 常见问题解答 2 E…

前端框架学习之 搭建vue2的环境 书写案例并分析

目录 搭建vue的环境 Hello小案例 分析案例 搭建vue的环境 官方指南假设你已经了解关于HTML CSS 和JavaScript的中级知识 如果你刚开始学习前端开发 将框架作为你的第一步可能不是最好的主意 掌握好基础知识再来吧 之前有其他框架的使用经验会有帮助 但这不是必需的 最…

JDK垃圾回收机制和垃圾回收算法

查看java相关信息 java -XX:PrintCommandLineFlags -version UseParallelGC 即 Parallel Scavenge Parallel Old,再查看详细信息 内存分配策略 1. 对象优先在 Eden 分配 大多数情况下&#xff0c;对象在新生代 Eden 区分配&#xff0c;当 Eden 区空间不够时&#xff0c;发…

PX4 UM982 配合F9P Base 进行 RTK 定位

UM982是新兴的常见双天线GPS模块&#xff0c;支持双天线定向&#xff0c;RTK功能&#xff0c;PX4也引入了对其的支持&#xff0c;需要按需额外设置 官方手册号称直接用F9P做地面站&#xff0c;搭配QGC使用就能进行RTK定位 但是经过实践&#xff0c;发现这样是进不了RTK模式的…

Docker---最详细的服务部署案例

提供python服务的docker一键部署&#xff0c;示例已配置负载均衡&#xff0c;不需要的在nginx.conf和docker-compose注释相关代码即可 文件结构 1、dockerfile # 服务的dockerfile# 服务依赖的镜像 FROM python:3.7# 设置容器内服务的工作目录 WORKDIR /app# 复制当前文件夹所…

基于Rspack实现大仓应用构建提效实践|得物技术

一、实践背景 随着项目的逐步迭代&#xff0c;代码量和依赖的逐渐增长&#xff0c;应用的构建速度逐步进入缓慢期。以目前所在团队的业务应用来看&#xff08;使用webpack构建&#xff09;&#xff0c;应用整体构建耗时已经普遍偏高&#xff0c;影响日常开发测试的使用效率&am…

护网--2

实验要求&#xff1a; 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 2、分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 3、多出口环境基于带宽比例进行选路&#xff0c;但是&#xff0c;…

实现keepalive+Haproxyde 的高可用

需要准备五台实验机 一台客户机&#xff1a;test1 两台&#xff1a;一主一备的实验机&#xff1a;test2 test3 两台真实服务器&#xff1a;nginx1 nginx2 实验 首先在两台实验机上安装Haproxy 安装依赖环境&#xff0c;并将Haproxy的包进行解压处理 yum install -y pcre…

nodejs安装部署运行vue前端项目

文章目录 1.安装nodejs2.安装Vue CLI1.配置npm镜像源&#xff1a;2.安装Vue CLI&#xff1a;3.创建Vue项目4.启动Vue项目5.Express 1.安装nodejs Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境&#xff0c;它让开发人员能够创建服务器、Web 应用、命令行工具和脚…