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不支持块级作用域,即变量定义的作用域并不是离其最近的封闭语句或代码块,而是包含它们的函数. 不了解这个会产生一 ...
随机推荐
- UI5-文档-4.14-Custom CSS and Theme Colors
有时我们需要定义一些更细粒度的布局,这时我们可以通过向控件添加自定义样式类来使用CSS的灵活性,并根据自己的喜好对它们进行样式化. Preview The space between the butt ...
- vue深入了解组件——处理边界情况
一.访问元素&组件 在绝大多数情况下,我们最好不要触达另一个组件实例内部或手动操作DOM元素.不过也确实在一些情况下做这些事情是合适的. 1.1 访问根实例 在每个 new Vue 实例的子组 ...
- win32允许前置窗口
win32允许前置窗口函数 AllowSetForegroundWindow(HWND hWnd) 该函数允许其他窗口调用SetForegroundWindow()(将窗口设为前置窗口),前提是调用A ...
- linux 安装禅道
1. 查看Linux服务器版本信息 # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 2. 禅道开源版安装包下载 # wge ...
- python语法学习之函数、类、模块
Python中通过使用类(class)和对象(object)来实现面向对象(object-oriented programming,简称OOP)的编程. 面向对象编程的最主要目的是提高程序的重复使用性 ...
- 显示Audio CD的音轨时间
uses MMSystem; procedure TForm1.Timer1Timer(Sender: TObject);var Trk : Word; Min : Word; Sec : ...
- 'Microsoft.VisualStudio.Editor.Implementation.EditorPackage' package did not load correctly
Visual Studio 2012 Ultimate Removing "C:\Users\UserName\AppData\Local\Microsoft\VisualStudio\11 ...
- Invoke,BeginInvoke的作用
这两个方法主要是让给出的方法在控件创建的线程上执行 凡是使用BeginInvoke和Invoke调用的线程都是在UI主线程中执行的
- 解决:Invalid character found in method name. HTTP method names must be tokens
阿里云上弄了一个tomcat,经常半夜发送崩溃,查看日志发现这个东西,查阅资料发现是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字 ...
- 将2020年交期的PR回写出来了
OUT_pr表中的交期为2020年和2019年,不应该 回写的PR却回写出来了 优化如下: