C#常见变量类型和使用规则

2023-11-06

C#常见变量类型和使用规则

常见变量类型

C#中值类型的变量主要包括整数类型、浮点类型、金钱(decimal)类型和布尔(bool)类型等。

1.整数类型

①int
范围:-2 147 483 648 ~ 2 147 483 647
大小:32位有符号整数

②short
范围:-32 768 ~ 32 767
大小:16位有符号整数

③long
范围:-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
大小:64位有符号整数

④… …

注意:整数类型只能存储整数,而不能存储小数。

int n1 = 10;	//赋值整数,正确
int n2 = 20.0f; //赋值小数,错误*

2.浮点类型

①float
范围:1.5×10的-45次方 ~ 3.4×10的38次方
精度:7位(小数点后7位数)

②double
范围:50×10的-324次方 ~ 1.7×10的308次方
精度:15 ~ 16位(小数点后的15 ~ 16位数)

注意:浮点类型既能存储整数,也能存储小数。

float f1 = 10;   //赋值整数,正确
float f2 = 20.0f;//赋值小数,正确

3.金钱(decimal)类型

与其他浮点类型相比,金钱类型具有更高的精度和更小的范围,因此更适合于计算财务和货币
范围:-7.9228×10的28次方 ~ 7.9228×10的28次方
精度:28 ~ 29个有效位

注意:如果使用decimal类型变量,必须使用后缀m或M。如果赋值整数是没有问题的,但是如果赋值小数后缀没有m或M,则数字将被视为double类型,导致编译器错误。

decimal m1 = 5;		//赋值整数,正确
decimal m2 = 10.4M;	//赋值小数后缀加M,正确
decimal m3 = 20.5m;	//赋值小数后缀加m,正确
decimal m4 = 30.6;	//赋值小数无后缀,错误*

4.布尔(bool)类型

布尔类型是用来表示真假的,即非真即假,非假即真。在C#中,分别采用true和false表示真和假。

注意:bool类型只能赋值true或者false。

bool isBoy = true;	//赋值true,正确
bool isGirl = false;//赋值false,正确
bool x = 1;			//赋值数值,错误*

5.字符串(string)类型

字符串类型的值需要被双引号括住,这个双引号必须是英文半角状态下的双引号。

注意:string类型也可以赋值字符串。

string str1 = "";         //赋值空字符串
string str2 = "字符串内容";//赋值字符串
Console.WriteLine("str2");//输出:str2(表示输出*str2字符串*)
Console.WriteLine(str2);  //输出:字符串内容 (表示输出*str2变量*)

6.字符(char)类型

字符类型最多、最少只能有一个字符。字符类型的值需要用单引号括起来,且必须是英文半角状态下的单引号。

注意:char类型不能存储空,但能存储空字符。

char c1 = '';	 //赋值空,错误*
char c2 = ' ';   //赋值空字符,正确
char c3 = '字符';//赋值两个字符内容,错误*
char c4 = '字';  //赋值单个字符内容,正确

变量使用规则

1)使用必须先赋值

int age;
Console.WriteLine("My age is " + age);
/*错误。声明变量,但是没有赋值,是不能直接使用的。*/

2)赋值必须先声明

age = 18;/*错误。未声明变量*/
Console.WriteLine("My age is " + age);/*错误。未声明变量*/

3)值必须对应类型

int age = 18.8f;/*错误。应赋值整数。*/
Console.WriteLine("My age is " + age);

因为作者精力有限,文章中难免出现一些错漏,敬请广大专家和网友批评、指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#常见变量类型和使用规则 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 计算机中程序一定要调入主存储器中才能运行,计算机1-3章

    1 课程名称 大学计算机基础 2 适用专业 非计算机类各专业 3 选用教材 大学计算机基础 陈本辉 杨锦伟 主编 北京师范大学出版社 2014年9月第1版 一 判断题 1 计算机常用的输入设备为键盘 鼠标 常用的输出设备有显示器 打印机 2
  • SpringBoot整合Nacos自动刷新配置

    目的 Nacos作为SpringBoot服务的注册中心和配置中心 在NacosServer中修改配置文件 在SpringBoot不重启的情况下 获取到修改的内容 本例将在配置文件中配置一个 cml age 100 的配置项 程序中编写一个方
  • Kali系统目录结构介绍2021

    Kali系统目录结构介绍 登陆kali后 打开终端 输入以下命令 ls all 你会看到如下图所示的结构 树状结构 以下是对这些目录的解释 bin bin是Binary的缩写 这个目录存放着最经常使用的命令 boot 这里存放的是启动Lin
  • Leetcode239.滑动窗口最大值——双端队列

    文章目录 引入 本题解法 引入 本题 看起来十分的简单 给定一个数组 nums 有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧 你只可以看到在滑动窗口内的 k 个数字 滑动窗口每次只向右移动一位 返回滑动窗口中的最大值 示例
  • 计网习题——第三章

    R1 假定网络层提供了下列服务 在源主机中的网络层接受最大长度1200字节和来自运输层的目的主机地址的报文段 网络层则保证将该报文段交付给位于目的主机的运输层 假定在目的主机上能够运行许多网络应用进程 a 设计可能最简单的运输层协议 该协议
  • 开源物联网平台ThingsBoard的安装

    ThingsBoard是一个开源平台 功能强大 性能稳定 用于收集和可视化物联网设备的数据 可以将来自任意数量设备的数据发送到云服务器 在云服务器中可以通过可自定义的仪表板查看或共享 ThingsBoard相关概念 租户tenant 拥有或
  • SQLi-Labs 学习笔记(Less 51-65)

    点击打开链接 Less 51 本关的Sql语句为 plain view plain copy sql SELECT FROM users ORDER BY id 因为此处用的是执行多个针对数据库的查询函数 mysqli multi quer
  • Linux——(第四章)关机、重启和用户登录注销

    目录 1 关机 重启命令 2 用户的登录和注销 1 关机 重启命令 一般情况很少遇到服务器关机操作 基本语法 sync 将数据由内存同步到硬盘中 该命令在重启和关机前执行 halt 立刻关机 关闭系统 但不断电 poweroff 关机 断电
  • Windows的AppData 文件夹

    文章目录 前言 AppData 文件夹是什么 如何查看 AppData 文件夹 AppData 文件夹的应用 有些软件为什么安装到AppData而不是Program Files AppData文件可以删除吗 可以删除的文件 其他常识文件 前
  • 知乎广告效果怎么样?有哪些优势呢?

    随着移动互联网的不断发展 在当下流量越来越贵的背景下 知乎平台以其独特的优势 特别失在内容营销方面独树一帜 相比较其它平台有着明显的优势 主要体现在 1 转化率高 因为知乎作为国内领先的互动问答平台 很多用户是因为有问题 上知乎找解决方案的
  • web 前后台数据交互的方式

    做web开发 很重要的一个环节就是前后台的数据的交互 数据从页面提交到contoller层 数据从controler层传送到jsp页面来显示 这2个过程中数据具体是如何来传送的 是本节讲解的内容 首先说一下数据如何从后台的contorlle
  • ubuntu22.04.1设置root登陆

    一 设置root密码 sudo passwd root 输入自己的超级用户密码 设置root账户密码 二 设置系统登陆界面 1 su root 2 gedit etc pam d gdm autologin 在弹出窗口中找到 auth re
  • numpy.argsort()函数参数以及案例问题

    参考博客网址是 numpy argsort函数 summer2day的博客 CSDN博客 argsort函数numpy argsort a axis 1 kind quicksort order None 返回的是数组值从小到大的索引值 参
  • JAVA获取部门人员树

    直接上代码 无需多言 主要还是递归 实体类 Data ApiModel NoArgsConstructor public class TreeDept implements Serializable type 0 表示是部门 type 1
  • 一个好用的在线RSS阅读器

    最近用国外IP访问有道阅读貌似有问题 于是找了一些替代品尝试 http reader aol com 这个和Google Reader最相似 不过导入有道阅读的OPML总是不成功 http www inoreader com 这个也相当好
  • Debian 10 安装网络yum源

    Debian 10 安装网络yum源 实验环境一台最小化Debian10 IP地址是192 168 10 1 24 还需要一张外网的网卡 配置网络 vim etc network interfaces 编辑网络配置文件 auto ens37
  • Python提取评论(使用pycharm+Python)

    一 安装调用所要用到的库函数 import requests from bs4 import BeautifulSoup 二 自定义根据每页影评的url爬取影评的方法 1 请求url def getData url 三 请求头为字典格式 h
  • java图片转base64注意事项

    java转base64有两点需要注意的地方 在window操作系统中 图片转换为base64 在base64的字符串中会有默认换行 这就破坏了json格式 所以这里需要做一下处理 除此之外 在java转base64时 会缺少base64字符
  • torch.cat的参数dim到底是在哪个维度拼接

    如果将两个维度为 n c h w 进行拼接 如果指定dim为以下值 dim 0 拼接后维度为 2n c h w dim 1 拼接后维度为 n 2c h w dim 2 拼接后维度为 n c 2h w dim 3 拼接后维度为 n c h 2
  • C#常见变量类型和使用规则

    C 常见变量类型和使用规则 常见变量类型 C 中值类型的变量主要包括整数类型 浮点类型 金钱 decimal 类型和布尔 bool 类型等 1 整数类型 int 范围 2 147 483 648 2 147 483 647 大小 32位有符