C#高级编程 (第六版) 学习 第二章:C#基础
第二章 基础
1,helloworld示例:
helloworld.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello Wold. C#"); return; } } } |
使用csc helloworld.cs编译它
2,C#main函数
static void Main()
{
}
Main函数必须为静态类型,而且返回值不是void就是int
3,C#中的方法定义
[modifiers] return_type MethodName([parameters])
修饰符(modifiers):用于指定用户定义的某些方法的特性。
4,变量
变量的初始化:
- 变量是类或者结构中的字段,如果没有显式初始化,创建这些变量时,值为0。
- 方法的局部变量必须在代码中显式初始化才能使用,否则会报错。
5,类型推断
var name = value;
变量必须初始化,声明变量并推断出类型后类型不可改变。
6,变量的作用域
只要类在某个作用域内,字段也在该作用域内。
局部变量存在于表示声明该变量的块语句或方法结束的封闭花括号之前的作用域内。
同名的局部变量不能在同一作用域内声明两次,但是字段可以和局部变量同名。
6,常量
常量使用const修饰
常量必须在声明时初始化,然后值就不能改变了,
7,值类型和引用类型
值类型:存储在堆栈中,直接存储值
引用类型:存储在托管堆上,存储引用
8,预定义的值类型和引用类型
值类型:
- 整型:
名称 |
CTS类型 |
说明 |
sbyte |
System.SByte |
8位有符号整数 |
short |
System.Int16 |
16位有符号整数 |
int |
System.Int32 |
32位有符号整数 |
long |
System.Int64 |
64位有符号整数 |
byte |
System.Byte |
8位无符号整数 |
ushort |
System.Uint16 |
16位无符号整数 |
uint |
System.Uint32 |
32位无符号整数 |
ulong |
System.Uint64 |
64位无符号整数 |
uint ui = 12U;
long l = 10L;
ulong ul = 123UL;
- 浮点类型
名称 |
CTS类型 |
说明 |
位数 |
float |
System.Single |
32位单精度 |
7 |
double |
System.Double |
64位双精度 |
15/16 |
float f = 1.2F;
- decimal类型
名称 |
CTS类型 |
说明 |
位数 |
decimal |
System.Decimal |
128位高精度十进制 |
28 |
decimal d = 1.2M;
- bool类型
用于包含布尔值true和false
名称 |
CTS类型 |
说明 |
位数 |
bool |
System.Boolean |
true或者false |
NA |
注:bool类型不能和数值类型相互转换
- 字符类型
名称 |
CTS类型 |
说明 |
位数 |
char |
System.Char |
表示一个16位Unicode字符 |
16 |
使用单引号表示单个字符
除了把char表示为字符字面量之外,还可以用4位十六进制的Unicode值如'\u0041'带有数据类型转换的整数值(char)65,或者十六进制数'\x0041'来表示他们。
转义序列
转义序列 |
字符 |
\' |
单引号 |
\" |
双引号 |
\\ |
反斜杠 |
\0 |
空 |
\a |
警告 |
\b |
退格 |
\f |
换页 |
\n |
换行 |
\r |
回车 |
\t |
水平制表 |
\v |
垂直制表 |
引用类型
名称 |
CTS类型 |
说明 |
object |
System.Object |
根类型 |
string |
System.String |
Unicode字符串 |
string s = @"a\a"; @表示将后面的字符看成原来的意思
9,流控制
if(condition) statement(s);//condition必须为bool类型
switch…case
case值必须为常量表达式,不允许使用变量。可以把常量字符串用做测试变量。
必须使用break,除非case语句为空。
10,循环
for,while,do..while循环和C/C++相同
foreach循环:支持IEnumerable接口的对象。
例:
int[] a = {1,2,3,4,5}; foreach(int i in a) { //operation } |
每次迭代集合中的一个元素,不能改变元素。
11,跳转语句
goto:
goto Label1;
Lable1:
statements;
goto不能跳转到循环中,不能跳出类,不能退出finally
break
用于退出switch,for,foreach,while,do…while循环
continue
跳过当前迭代,用于for,foreach,while,do…while
return:返回
12,枚举
public enum A { a = 0, b = 1, c = 2 } |
13,数组
所有数组均为引用类型
声明:int[] a = new int[10];
14,命名空间
命名空间可嵌套。
不允许在另一个声明的命名空间中声明多部分的命名空间。
使用using语句引入命名空间。
使用using alias = NameSpace;声明命名空间的别名。
15,Main方法
Main方法的返回值必须为int或者void,使用string[] args输入参数。可以使用多个Main方法,编译时使用/main开关指定Main方法。
16,编译文件
使用/t或者/target选项指定文件类型,
/t:exe:控制台程序
/t:library:带清单的类库
/t:module:不带清单的类库
/t:winexe:Windows应用程序
/out:指定文件名
/out和/target必须位于文件名前。
17,控制台I/O
格式化结果:{n,w:Pm};
n:参数索引
w:宽度值,正值表示右对齐,负值表示左对齐,实际长度大于n无效
P:格式选项
m:精度
18,预处理指令
#define/#undef
条件编译:
#if
#elif
#else
#endif
#warning/#error
#pragma:抑制或者恢复警告
C#高级编程 (第六版) 学习 第二章:C#基础的更多相关文章
- C#高级编程 (第六版) 学习 第一章:.Net体系结构
第一章 .Net体系结构 1,公共语言运行库(Common Language Runtime, CLR) .Net Framework的核心是其运行库的执行环境,称为公共语言运行库,或.Net运行库. ...
- C#高级编程 (第六版) 学习 第七章:委托和事件
第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针. .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的. 委 ...
- C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...
- C#高级编程(第六版)学习:第三十一章:Windows窗体
第三十一章 Windows窗体 创建Windows窗体应用程序 在文本编辑器中输入: /* * form.cs * a simple windows form * */ using System; u ...
- C#高级编程 (第六版) 学习 第五章:数组
第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存. 还可以用如下的方法: int[] myArray = new in ...
- C#高级编程 (第六版) 学习 第四章:继承
第四章 继承 1,继承的类型 实现继承: 一个类派生于一个基类型,拥有该基类型所有成员字段和函数. 接口继承 一个类型只继承了函数的签名,没有继承任何实现代码. 2,实现继承 class MyDe ...
- C#高级编程 (第六版) 学习 第三章:对象和类型
第三章 对象和类型 1,类和结构 类存储在托管堆上 结构存储在堆栈上 2,类成员 类中的数据和函数称为类成员 数据成员 数据成员包括了字段.常量和事件 函数成员 方法:与某个类相关的函数,可以 ...
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- c#高级编程第七版 学习笔记 第二章 核心c#
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...
随机推荐
- 20190313-时间和日期-Time
概述 在Python中,与时间处理相关的模块有:time.datetime以及calendar,Python中通常有这几种方式表示时间:时间戳.格式化的时间字符串.时间元组(struct_time 共 ...
- go字符串转换
package main import ( "fmt" "strconv" ) /* 常用总结 1.str 转 int a, _ := strconv.Atoi ...
- Go语言中结构体的使用-第2部分OOP
1 概述 结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体.结构体除了是一个复合数据之外,还用来做面向对象编程.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. ...
- 项目开发设计模式理解之MVC模式
项目开发设计模式之MVC模式: M model 模型层 V view 视图层 C control 控制器 MVC模式在B/S架构下使用很广泛的软件设计模式,分成三个相对独立的模块构成,model+vi ...
- Oracle入门第三天(上)——多表查询与分组函数
一.多表查询 所有的连接分析,参考之前随笔:http://www.cnblogs.com/jiangbei/p/7420136.html 1.笛卡尔积 select last_name, depart ...
- 实验三 敏捷开发与XP实践-1
实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实 ...
- 20155310 2016-2017-2 《Java程序设计》第四周学习总结
20155310 2016-2017-2 <Java程序设计>第四周学习总结 一周两章新知识的自学与理解真的是很考验和锻炼我们,也对前面几章我们的学习进行了检测,遇到忘记和不懂的知识就再复 ...
- 20155334 2016-2017-2 《Java程序设计》第十周学习总结
20155334 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 1.计算机网络概述 (1)路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以 ...
- 20145234黄斐《Java程序设计》第九周
教材学习内容总结 整合数据库 JDBC入门 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性,数据库本身是个独 ...
- CF 868 F. Yet Another Minimization Problem
F. Yet Another Minimization Problem http://codeforces.com/contest/868/problem/F 题意: 给定一个长度为n的序列.你需要将 ...