C# 从0到实战 变量的定义与使用
变量的定义
变量本质是一种内存的占位符,使得我们可以轻松操作计算机。C#的变量声明格式是: 类型 名称 = 值;
1 //....
2
3 int val = 0; //定义并赋值
4
5 Console.writeLine(val);
var关键字的使用
上面的类型简单的测试了变量的定义、赋值与使用。但有时,我们自己也不清楚用上面类型好,希望编译器为我们选择,那么就可以使用C#的 var 关键字。var关键很类似于C++中的 auto 关键字,主要提供一个类型推导的作用,也就是说,左边变量的类型取决于右边表达式的运算结果的类型。下面的例子就解释了这一方面。
//...
var val = 3.1415+6; //浮点型(double)
var str = "fang" + 5; //字符串型(String)
变量的默认值
对于所有的基本类型,C#都提供了默认值,我用一个表格来解释
| 类型 | 默认值 |
|---|---|
| 任何引用类型 | null |
| 任何内置整数数值类型 | 0(零) |
| 任何内置浮点型数值类型 | 0(零) |
| bool | false |
| char | '\0' (U + 0000) |
| enum | 表达式 (E)0 生成的值,其中 E 是枚举标识符。 |
对于其他非基本类型,C#也提供了相应的默认值。
| struct | 通过如下设置生成的值:将所有值类型的字段设置为其默认值,将所有引用类型的字段设置为 null。 |
| 任何可以为 null 的值类型 | HasValue 属性为 false 且 Value 属性未定义的实例。 该默认值也称为可以为 null 的值类型的“null” 值。 |
对于引用类型,除去 String 外,绝大部分都是 null 。
当然,我们自己指定的变量值有时候不一定是用户需要的,所以变量的值最好是由用户来输入。 读取用户的输入,我们可以使用 ReadLine()读取用户的一行输入,由于这个方法返回的都是字符串,所以我们需要使用一个转换方法把它转换成自己需要的类型,比如用 Convert.ToInt32() 转为int类型。
常量
既然有了变量,那为什么就没有常量呢?不是的,C#中的常量可以分成 字面量 和 一般常量。
字母量就是一个直接的值,它的意思就是它的值。而一般常量是 和声明普通变量一样,只不过需要多加一个const 用来修饰它,一旦赋值,就再也不能改变。它的格式如下:
const <data_type> <constant_name> = value;
C# 从0到实战 变量的定义与使用的更多相关文章
- Crash工具实战-变量解析【转】
转自:http://blog.chinaunix.net/uid-14528823-id-4358785.html Crash工具实战-变量解析 Crash工具用于解析Vmcore文件,Vmcore文 ...
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- oracle函数、包、变量的定义和使用、重点”结构体和数组”
函数 实例1:输入雇员的姓名,返回该雇员的年薪 create function fun1(spName varchar2) ,); begin +nvl(comm,) into yearSal fro ...
- 你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化
第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢?程序的两大任务是描述数据和 ...
- 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍
webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互依赖的文件打包在一起.webpack 本 ...
- PHP 注释 数据类型 变量的定义/输出 类型的获取/转换 可变变量
注释方法: 1,单行注释: // 2, 多行注释: /* */ 二,数据类型 1,integer(整数型):在三十二位操作系统中它的有效范围是:-2147483648~+2147 ...
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- PHP变量的定义与相应的数据类型
在PHP中,变量的定义和C语言定义的方法是类似的,但是在PHP中,变量使用起来就非常灵活,一个变量既可以做整型,也可以是浮点型,也可以是字符串或者字符类型,通通只要在变量名前面加一个$然后加上你的变量 ...
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1. 摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ...
随机推荐
- Python笔记(5)——if 语句一:条件测试(Python编程:从入门到实践)
每条if语句的核心都是一个值为True或False的表达式.Python根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,Python就执行紧跟在if ...
- 扫描线总结【线段树特殊性质,没有pushdown、query操作】
扫描线 题意 多个矩阵求交集,线段树的特殊操作,非常特殊的情况,一堆证明之后,就没有pushdown操作. 没有pushdown操作,也没有query操作,直接tr[1].len. 亚特兰蒂斯 由于点 ...
- Mysql5.7的安装与卸载与数据迁移
Mysql5.7的安装与卸载 安装: 1.安装的时候 只选择安装 server即可 2.安装过程中,一定要重新选择安装路径和各个日志的路径,将来会非常大,不适合存在系统盘下面 3.安装时,取消MySQ ...
- HPA 弹性伸缩
在k8s中,我们使用pod对外提供服务,这个时候,需要以下两种情形需要关注: pod因为不明原因挂掉,导致服务不可用 pod在高负载的情况下,不能支持我们的服务 如果人工监控pods,人工调整副本,那 ...
- 使用 IntersectionObserver API 遇到的一些问题
root 设指定为 document.body 时不会触发更新 See the Pen document.body and IntersectionObserver by y1j2x34 (@y1j2 ...
- Eclipse使用Maven搭建SSM框架时遇到的问题以及解决办法
1.新建项目后出现:Could not caculate build plan:plugin 解决方法:删除本地.m2仓库中 org.apache.maven.plugins:maven-resour ...
- vivo全球商城:库存系统架构设计与实践
作者:vivo官网商城开发团队 - Xu Yi.Yan Chao 本文是vivo商城系列文章,主要介绍vivo商城库存系统发展历程.架构设计思路以及应对业务场景的实践. 一.业务背景 库存系统是电商商 ...
- Kubecost - Kubernetes 开支监控和管理
️URL: https://www.kubecost.com/ Description: Kubeccost 为使用 Kubernetes 的团队提供实时成本可视化和洞察,帮助您持续降低云成本. 昨天 ...
- Java并发小结01
Java并发小结01 主要参考自<实战Java高并发程序设计>. 需要知道的概念 - 同步与异步 - 并发与并行 - 临界区 - 阻塞与非阻塞 - 死锁.饥饿.活锁 同步与异步 同步:同步 ...
- 从零开始学习Java系列教程之Windos下dos命令行使用详解前言
在上一篇文章中,壹哥重点给大家讲解了Java开发和运行环境的安装及配置,分析了JDK与JRE的区别,而且还给大家提到了dos命令行.可能有些童鞋对dos命令的使用还不熟悉,其实我们在初学Java时,经 ...