C#基础语法(一)
一.基础语法
1.C#区分大小写,所以myVar和MyVar是两个不同的变量。
2.每个C#可执行文件(如控制台应用程序,Windows应用程序和Windows服务)都必须有一个入口点————Main()(M大写)
public static void Main()
{
//do something
}
在程序启动时调用这个方法。该方法要么没有返回值(void),要么返回一个整数(int)
二.变量
1.编译器不允许在表达式中使用未初始化的变量。如果变量是类或结构中的字段,如果没有初始化,创建这些变量时,其默认值就是0。
2.类型推断
类型推断(type inference)使用var关键字。编译器可以根据变量的初始化值“推断”变量的类型。var somenum = 0;
即使somenum从来没有声明为int,编译器也可以确定,只要somenum在其作用域内,就是一个int.
声明了变量,推断出了类型后,就不能改变变量类型了。变量的类型确定后,就遵循其它变量类型遵循的强类型化规则。
3.变量的作用域
变量的作用域是访问该变量的代码区域。只要变量的作用域是程序的不同部分就不会有问题。
(1).局部变量的作用域冲突
public static int Main()
{
int j =20;
for(int i=0;i<20;i++)
{
int j = 30;
// do something
}
}
编译时会报错,因为在Main()方法作用域内有两个变量j,编译器无法区分这两个变量。
(2).字段和局部变量的作用域冲突
某些情况下可以区分名称相同,作用域相同的两个标识符。原因是C#在变量之间有一个基本的区分,它把在类级别声明的变量看作
字段,而把在方法中声明的变量看作局部变量。
class Program
{
int j = 20;
static void Main(string[] args)
{
int j = 30;
Console.WriteLine(j);
Console.ReadKey();
}
}
虽然在Main()方法的作用域内声明了两个j,这段代码也会编译。在类级别上定义的j,在该类删除前是不会超出作用域的,在
Main()中声明的j隐藏了同名的类级别变量,所以运行代码时会显示30.
三.常量
顾名思义,常量是其值在使用过程中不会发生改变的变量。在声明和初始化变量时,在变量的前面加上关键字const,就可以把该变量指定
为一个常量:const int a =100;
常量的特点;
*常量必须在声明时初始化。指定了值之后就不能改写了。
*常量的值必须能在编译时用于计算。因此不能用于从一个变量中提取的值来初始化常量。如果需要,应使用只读字段(后面介绍)。
*常量总是静态的。但注意,不必(实际上不允许)在常量声明中包含static
使用常量的好处:
*由于使用易于读取的名称(名称的值易于理解)代替了较难读取的数字或字符串,常量使程序变得更易于阅读。
*常量使程序易于修改。当常量的值需要修改时,只需要把新值赋给这个常量,不必查找整个程序去修改。
*常量更容易避免程序出现错误。如果在声明常量的位置以外的地方给常量赋值,编译器会报错。
博客编写中可能存在错误,欢迎读者指正批评,邮箱15734108350@163.com.
C#基础语法(一)的更多相关文章
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- emmet 系列(1)基础语法
emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...
- Scala基础语法 (一)
如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...
- Java基础语法
java基础学习总结——基础语法1 一.标识符
- javascript中正则表达式的基础语法
× 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...
- Swift基础语法学习总结(转)
Swift基础语法学习总结 1.基础 1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 【OC基础语法考试】
OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...
随机推荐
- HttpClient 工具
什么是httpclient HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 ja ...
- API抓屏
需调用API函数 需在开头引入命名空间 using System.Runtime.InteropServices; 获取当前窗口句柄:GetForegroundWindow() [DllImport( ...
- Java面试09|多线程
1.假如有Thread1.Thread2.Thread3.Thread4四条线程分别统计C.D.E.F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现? 把相互独立的计算任 ...
- Archlinux 的U盘自动装载(二)升级到 udisks2
在安装 mysql-gui-tools 过程中,发现需要用到 udisks2.udisks和udisks2可以互相替换也可以共用.最后决定换用 udisks2 安装 先卸载原来的软件,如果有的话. p ...
- i++和++i 的学习
在<<C++ Primer>> 第四版 5.5中讲解到: ++i:返回操作之后的结果,且是个左值. i++:返回操作之前的结果,且是有右值. // 2_3.cpp : 定义控制 ...
- Python自动化开发(三):循环次数控制、常用数据类型、字符串格式化、列表常用操作、列表的后续操作
计数器的作用可以在死循环中,符合条件的情况下做自动退出中断 #!/usr/bin/env python # _*_ coding: utf-8 _*_ # @Time : 2017/3/14 11:2 ...
- latex lstlisting
转自 http://blog.csdn.net/lydyangliu/article/details/9208635 \usepackage{graphicx}\usepackage{xcolor}\ ...
- H5 视频
HTML 5 视频 HTML5 简介 HTML5 视频/DOM 许多时髦的网站都提供视频.HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: Yes! Full suppo ...
- JavaWeb之JSON
一.什么是JSON? JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML ...
- 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划
菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 采用Sc ...