当前位置: 首页 > 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类型,并返回转换结果是否成功

相关文章:

C#环境与数据类型

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

jenkins系列-06.harbor

https://github.com/goharbor/harbor/releases?page2 https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz harbor官网&#xff1a;https://goharbor.io/ 点击 Download now 链接&#xff0c;会自动跳转到上述github页面&am…...

kotlin get set

在 Kotlin 中&#xff0c;如果想实现一个类的属性可以从外部读取但不能修改&#xff0c;可以使用自定义的 getter 和 private setter。以下是一个示例代码&#xff1a; class MyClass {var myProperty: Stringprivate set // 使 setter 私有化&#xff0c;外部无法修改get // …...

Flask包算法服务

常规包算法服务,就是比较简单,直接起一个fastapi就可以了。 import time import asyncio from aidraw import engineer_log as eng from fastapi import FastAPI from pydantic import BaseModel from typing import Optional from aidraw.ardraw import run_aidraw_api# 起…...

Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念

Flowable&#xff08;一个开源的工作流和业务流程管理引擎&#xff09;中与事件相关的一些核心概念 Flowable&#xff08;一个开源的工作流和业务流程管理引擎&#xff09;中与事件相关的一些核心概念&#xff0c;包括它们的作用和触发场景。以下是对这些内容的简要说明&#x…...

深度解析:景区客服系统如何助力旅游业可持续发展

一、引言 在全球化与信息化交织的时代背景下&#xff0c;旅游业正以前所未有的速度发展&#xff0c;成为推动经济增长、文化交流与环境保护的重要力量。景区作为旅游业的核心组成部分&#xff0c;其服务质量和管理水平直接影响到游客的满意度和行业的可持续发展。景区客服系统…...

风险评估:IIS的安全配置,IIS安全基线检查加固

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…...

uniapp 截取两条数据 进行页面翻页滚动

// 轮播信息 <view class"sales_list" ><view class"sales_item" v-for"(item,index) in sellDisplayList" :key"index" click"salesFn(item)"><image :src"item.goodsImg"></image><…...

python笔记(转存ipynb)------1

list1 ["tom","cat","Lili"] print(list1[0].title())Tom#append()列表方法在列表末尾添加新元素 list1.append(233) print(list1) #可以先创建空列表&#xff0c;再进行追加append(..)以添加[tom, cat, Lili, 233]#insert()列表方法插入元素 l…...

excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出

一、介绍 在上篇文章中&#xff0c;我们介绍了 apache poi 工具实现 excel 文件的导入导出。 本篇我们继续深入介绍另一款优秀的 excel 工具库&#xff1a;easypoi。 二、easypoi 以前的以前&#xff0c;有个大佬程序员&#xff0c;跳到一家公司之后就和业务人员聊上了&…...

邀请函|2024第八届中国太阳能电池浆料与金属化技术展

2024第八届中国国际太阳能电池浆料与金属化技术展览会 地点:深圳国际会展中心 时间:2025年06-月25日-27日 地点:上海新国际博览中心 时间:2024年12月18日-20日 主办单位&#xff1a;上海氟伦展览有限公司 指导单位&#xff1a;中国新材料技术协会 中国电子学会 耐…...

图像边缘检测:技术原理与算法解析

图像边缘检测是计算机视觉和图像处理中的一个核心任务&#xff0c;它旨在识别图像中亮度变化明显的点&#xff0c;从而识别出图像的边缘。边缘是图像中的重要特征&#xff0c;对于后续的图像分析、物体识别和图像分割等任务具有至关重要的作用。本文将深入探讨图像边缘检测的技…...

【Python星启航】少儿编程精英启蒙之旅 - 大纲

1. 计算机基础与编程环境 计算机的基本构成 编程语言与编程环境介绍 Python语言的特点与优势 安装与配置Python环境 2. 计算机历史与发展 计算机的起源与早期发展 个人电脑的普及与影响 当代计算机技术的前沿动态 计算机在未来教育中的角色 3. 编程基础概念 变量的定义与作…...

MATLAB的mat文件转换成json文件

内参矩阵 (K)&#xff1a;相机的内在参数矩阵&#xff0c;通常是一个3x3的矩阵&#xff0c;包含了相机的焦距&#xff08;fxfx​和fyfy​&#xff09;和主点&#xff08;光学中心&#xff09;的坐标&#xff08;cxcx​和cycy​&#xff09;。这个矩阵将图像坐标转换为归一化相机…...

STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正比…...

文件安全传输系统,如何保障信创环境下数据的安全传输?

文件安全传输系统是一套旨在保护数据在传输过程中的安全性和完整性的技术或解决方案。通常包括以下几个关键组件&#xff1a; 加密&#xff1a;使用强加密算法来确保文件在传输过程中不被未授权访问。 身份验证&#xff1a;确保只有授权用户才能访问或传输文件。 完整性校验…...

论文分享|AAAI2024‘北航|用大语言模型缩小有监督和无监督句子表示学习的差距

先说结论&#xff0c;大语言模型除了作为聊天的Agent&#xff0c;也可以为检索模型生成优质的文本对训练数据&#xff0c;从而做到无监督场景下也能够适用。这里分享一篇AAAI2024的工作&#xff0c;重点探讨如何生成比评估集更困难的训练数据来提升无监督句子表示学习质量&…...

vue3相比于vue2有哪些新特性?

Composition API&#xff1a; 组合式 API 提供了更灵活和可组合的方式来组织代码。它允许将逻辑功能集中在一起&#xff0c;而不是分散在生命周期钩子中。 import { ref, reactive, computed, watch } from vue;export default {setup() {const count ref(0);const state r…...

Gooxi受邀参加第三届中国数据中心服务器与设备峰会

7月2-3日&#xff0c;第三届中国数据中心服务器与设备峰会在上海召开&#xff0c;作为国内最聚焦在服务器领域的专业峰会&#xff0c;吸引了来自全国的行业专家、服务器与机房设备厂家&#xff0c;企业IT用户&#xff0c;数据中心业主共同探讨AIGC时代下智算中心设备的设计之道…...

3个实现前端节流的方法,附代码。

一、什么是前端节流 前端节流&#xff08;Throttling&#xff09;是一种优化前端性能的技术&#xff0c;它可以限制某些函数的执行频率&#xff0c;以提高性能和用户体验。节流可以用于控制一些高频事件的触发频率&#xff0c;比如滚动事件、鼠标移动事件、窗口大小改变事件等…...

HarmonyOS ArkUI实战:从零构建购物社交应用UI界面

1. 项目概述与核心价值如果你正在学习HarmonyOS应用开发&#xff0c;或者已经从其他移动端框架&#xff08;如Android、Flutter&#xff09;转过来&#xff0c;那么构建一个美观、交互流畅的UI界面&#xff0c;往往是上手实践的第一步&#xff0c;也是最直观检验学习成果的一步…...

AI Agent金融应用的“黑箱困局”:模型可解释性不达标=监管否决权!3种通过FINRA/证监会双认证的XAI实施方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;AI Agent金融应用的“黑箱困局”&#xff1a;模型可解释性不达标监管否决权&#xff01;3种通过FINRA/证监会双认证的XAI实施方案 当AI Agent在信贷审批、反洗钱&#xff08;AML&#xff09;实时监控或智能投顾…...

DECO项目架构解析:从源码理解装饰器并发模型的设计哲学

DECO项目架构解析&#xff1a;从源码理解装饰器并发模型的设计哲学 【免费下载链接】deco 项目地址: https://gitcode.com/gh_mirrors/de/deco DECO&#xff08;Decorated Concurrency&#xff09;是一个革命性的Python并行计算框架&#xff0c;它通过装饰器实现了简洁…...

Mythos门控能力:大模型长程推理与反事实推演的工程化落地

1. 项目概述&#xff1a;一次被刻意“锁住”的能力跃迁“TAI #200: Anthropic’s Mythos Capability Step Change and Gated Release”——这个标题里没有一个生僻词&#xff0c;但组合在一起却像一道加密指令。我在AI行业一线摸爬滚打十多年&#xff0c;从早期用TensorFlow手写…...

航空航班延误预测:可解释性模型与四源融合实战

1. 项目概述&#xff1a;这不是一个“预测准不准”的问题&#xff0c;而是一个“预测有没有用”的问题我做航班延误预测项目&#xff0c;不是为了在Kaggle排行榜上刷个0.89的AUC就收工。真正让我在凌晨三点改完第17版特征工程脚本、盯着滚动的日志等模型收敛的&#xff0c;是去…...

量子工作量证明区块链:原理、实现与应用

1. 量子工作量证明区块链架构解析量子区块链的核心创新在于将量子计算的优势融入传统区块链架构。与比特币等经典区块链不同&#xff0c;量子工作量证明&#xff08;PoQ&#xff09;机制要求矿工必须使用量子计算机完成挖矿过程。这种设计从根本上改变了区块链的共识机制&#…...

DataStore vs SharedPreferences 迁移指南:告别 ANR,拥抱类型安全

DataStore vs SharedPreferences 迁移指南&#xff1a;告别 ANR&#xff0c;拥抱类型安全 一句话收益&#xff1a;掌握从 SharedPreferences 迁移到 Jetpack DataStore 的完整路径&#xff0c;彻底消除主线程 I/O 阻塞与类型安全隐患。 适用版本&#xff1a;Android API 21&…...

Ubuntu 18.04环境下小米K30U内核编译实战与排错指南

1. 项目概述与核心价值最近在折腾一台小米K30U&#xff0c;想给它刷个自定义内核&#xff0c;体验一下超频或者优化调度。但网上的教程要么是针对新机型&#xff0c;要么就是环境配置说得不清不楚&#xff0c;特别是对于Ubuntu 18.04这个已经有点“年迈”但依然稳定的系统版本&…...

ChatGPT开源实现全景图:从RLHF原理到主流项目实战指南

1. 项目概述&#xff1a;一份给开发者的ChatGPT开源实现全景图最近几个月&#xff0c;ChatGPT的火爆程度无需多言。作为一名长期关注自然语言处理和开源生态的技术从业者&#xff0c;我观察到社区里涌现出了一大批旨在复现或探索ChatGPT技术路径的开源项目。这背后反映的&#…...

MSP430在便携式医疗设备中的超低功耗设计与血氧心率监测实现

1. 项目概述&#xff1a;为什么是MSP430&#xff1f;在便携式医疗设备这个赛道上&#xff0c;选型往往是决定项目成败的第一步。当你面对血糖仪、血氧仪这类需要用户随身携带、频繁使用、且对测量精度和电池寿命有严苛要求的产品时&#xff0c;一颗合适的微控制器&#xff08;M…...