c#中关于变量声明那么点事
class MyVar {
/*
* 基于安全的考虑,c#变量的初始化有一定的要求
* 1.所有的局部变量在被显示的初始化之前,都会被编译器当作未初始化,然后抛出编译期出错;
* 2.所有的字段级变量被编译器初始化为所属类型中等价于0的值.如布尔型的初始化为false,数值型的初始化为
或者0.0,所有引用类型都初始化为null.
* */
private string Name;
public void SaySomthing() {
string info;
Console.WriteLine(info);
}
/*
* 上面的代码中,Name是字段级变量,info是局部变量
* 在编译的时候就会报错.(使用了未赋值的info)
* 因为局部变量在使用时是必须要赋值的,而字段级的变量可以被编译器自动初始化. *
*/
/*
* 各种数据类型的默认值
* 整型的都返回0
* ushort 0
* ulong 0
* uint 0
* struct 整型的0,引用型的null
* short 0
* sbyte 0
* long 0
* int 0
* float 0.0F
* enum 枚举类型下标为0的元素
* double 0.0D
* decimal 0.0M
* char '\0'
* byte 0
* bool flase
*/
/*
从C#3.0开始,引入了var关键字,编译器可以通过它的初始值来判断具体类型.
* 根据上面的综述,var只能用于局部变量的声明,不能用于字段级别的声明,并且var声明的变量必须要有初始值,这样编译器才能判断变量的类型.
*/
}
c#中关于变量声明那么点事的更多相关文章
- es6中的变量声明
目录 es6中的变量声明 变量的声明 es6中的变量声明 变量的声明 for (var i = 0; i < 5; i++) { console.log(i) } var声明 作用域问题 上面的 ...
- Js中有关变量声明和函数声明提升的问题
在ECMAScript5中没有块级作用域一说,只有函数作用域和全局作用域,在其中声明的变量和函数和其他语言的展现形式不同,在某些情况下不一定需要先定义后使用,函数和变量的使用可以在其声明之前,这到底是 ...
- js 中的变量声明提前总结
一.var 声明 ES6之前,js 中声明变量基本上用 var 关键字: 1.如果访问未声明的变量,会报错:ReferenceError 2.声明了未赋值,值为 undefined,跟前面的报错是两回 ...
- [JavaScript]JS中的变量声明与有效域
1.变量声明 var a = 1; //使用var声明变量 b = 1; //不使用var 第一种情况,在当前域中声明一个名为a的变量,如果实在方法内则为局部变量,若在最外层声明则a为全局变量. 第二 ...
- C++中switch 语句中的变量声明和
switch 内部的变量定义: ; switch(i) { : string str; //error ; //error int val2; //right ; //right : val2 = ; ...
- Linux Shell中的变量声明和一些特殊变量
在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可 ...
- bat命令中的变量声明及使用
在bat文件中声明变量的方式如下: set xxx_variant_name=yyyyyyyyyyyy move D:\abc\efg\test.txt %xxx_variant_name%\test ...
- JavaScript中变量声明有var和没var的区别
JavaScript中变量声明有var和没var的区别 JavaScript中有var和没var的区别 Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (functi ...
- [Effective JavaScript 笔记] 第12条:理解变量声明提升
js支持词法作用域,即除了极少的例外,对变量的引用会被绑定到声明变量最近的作用域中. js不支持块级作用域,即变量定义的作用域并不是离其最近的封闭语句或代码块,而是包含它们的函数. 不了解这个会产生一 ...
随机推荐
- Eclipse 工程使用相对路径导入Jar包设置
环境:MyEclipse 6.5 问题:MyEclipse 工程使用相对路径导入Jar包 我们在导入工程时,往往添加Jar都是使用的绝对路径,但这带来了一个问题,不同的用户使用工程都得重新配置Buil ...
- Mysql binlog二进制日志
Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的实际原sql语句都会被记录在binlog中. 优点:不需要记录每一 ...
- ArcGIS模型构建器案例学习笔记-字段处理模型集
ArcGIS模型构建器案例学习笔记-字段处理模型集 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 由四个子模型组成 子模型1:判断字段是否存在 方法:python工 ...
- JS中的继承实现方式
第一种:通过prototype来实现 prototype.html <!DOCTYPE html><html lang="en"><head> ...
- etcd ui
https://github.com/henszey/etcd-browser docker build --build-arg http_proxy=http://109.105.4.17:3128 ...
- EasuyUI前后台传参
package com.cn.eport.util; import java.util.List; import java.util.Map; public class PageHelper impl ...
- struts2标签类别
要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts ...
- flush(), clear(), save()的简单解释
hibernate最新发布包的javadoc里对这三个方法的解释是: clear() :Completely clear the session.清空session,该清空操作只对于要保存的.删除的和 ...
- 14.7.1&14.7.2
ArrayList <Object> list = new ArrayList<>(); //实例化ArrayList int i; int j; for(i = 1; i & ...
- 第八章 高级搜索树 (b3)B-树:查找