第二章:核心C#
变量
如果在一条语句中声明和初始化了多个变量,那么所有的变量都具有相同的数据类型
Int x=10,y=20;
变量使用前需要赋初始值
声明不同类型的变量需要单独的语句。
变量的初始化
变量时类或者结构中的字段,如果没有显式的初始化,创建这些变量时,其默认值就是0.
方法的局部变量必须在代码中显示的初始化,之后才能在语句中使用它们的值。
C#中初始化应用类型的数据时需要使用new关键字。
类型推断
1. 类型推断是使用var关键字
2. 变量必须初始化(否则编译器没有推断变量类型的依据)
3. 初始化器不能为空
4. 初始化器必须放在表达式中
5. 不能把初始化器设置成一个对象,除非在初始化其中创建了一个新的对象。
6. 声明的变量推断出类型后,就不能改变变量的类型了变量类型确定后就要遵循其他变量类型遵循的强类型化规则。
变量的作用域
变量的作用域是可以访问该变量的代码区域。
常量
在声明变量时前面加上const,就可以把该变量指定为一个常量。
常量必须在声明时初始化
常量的值必须在编译时用于计算
常量实际上是静态的,但,注意不允许在常量声明中包含修饰符static如果需要这么做,应该使用只读字段。
常量替代了难读的数字和字符串使程序易于阅读。
常量是程序易于修改。(销售税率发生变化6%变到8%)只需要修改变量的初始值即可
常量更容易避免让程序出现错误。
预定义数据类型
值类型和引用类型
值类型直接存储其值
应用类型存储对值的引用
存储位置不同:
值类型存储在堆栈中
引用类型存储在托管堆上
CTS类型
在C#中声明一个int类型的数据时声明的实际上是.net结构System。Int32的一个实例。
可以在语法上吧基本数据类型看做是支持某些方法的类。
C#有15个预定义的类型,其中13个值类型,两个引用类型(string和object)
C#支持8个预定义整数类型
Float f=23.30f;
Decimal类型的数据用于财务计算但是decimal不是基本类型,所以计算时使用该类型会有性能损失。
Decimal d=13.30M;
预定义的用用类型
Object 可以使用object引用绑定任何子类型的对象
Object执行许多一般用途的方法。(Equals(),GetHashCode(),GetType(),ToString()等等)。
String :虽然string是应用类型但是与其它引用类型在常见的操作上又有一些差别(字符串是不可变的:修改一个字符串就会创建一个全新的string对象而另一个字符串不发生任何变化)——实际是运算符重载的结果
转义字符的使用
String filepath=”C://ProCSharp//First.cs”;
String filepath=@”C:/ProCSharp/First.cs”;
流控制
switch (integerA)
{
case 1:
Console.WriteLine("1");
Break;
case 2:
Console.WriteLine("2");
Break;
default:
Console.WriteLine("is not 1or 2 ");
Break;
}
Main
C#程序是从方法Main()开始执行的。这个方法必须是类或者结构的静态方法并且返回值类型必须是Int或者void。
最新文章
- NSCharacter​Set 使用说明
- Netfilter/iptables的匹配方式及处理方法
- javascript对json对象的序列化与反序列化
- Spring 数据库配置用户名和密码加密
- Ubuntu 12.04下解决Tomcat自启动问题
- tornado介绍
- 1094. The Largest Generation (25)
- iOS 中SQLite数据库操作
- SQL语句操作文件
- 【POJ】1204 Word Puzzles
- C#中的转义字符
- 浅谈JS中的闭包
- poj 3740 Easy Finding 精确匹配
- Linux目录与文件的权限
- web服务器学习3---httpd 2.4.29日志处理
- 生活英语读写MOOC-Literature Tutor-有声名著阅读推荐
- 【2019雅礼集训】【最大费用流】【模型转换】D2T3 sum
- php项目中使用element.ui和vue
- Beta阶段敏捷冲刺日志的集合贴
- 【Java基础】15、负数的二进制表示方法
热门文章
- CF987C Three displays【一维DP/类似最大子序列和】
- Python的网络编程[3] ->; BOOTP 协议[0] ->; BOOTP 的基本理论
- [JSOI2009] 有趣的游戏
- Unity3d之MonoBehavior的各个函数的执行顺序,回调,顺序,次数等
- 【bzoj1001】【最短路】【对偶图】【最大流转最小割】狼抓兔子题解
- 实现微信朋友圈点击评论按钮时cell上移
- easyui 放大镜图标
- VirtualBox下Linux(centos)扩展磁盘空间
- Laravel利用pusher推送消息
- 【转】 从输入 URL 到页面加载完成的过程中都发生了什么事情?