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 ...
随机推荐
- Delphi Android USB Interface with the G2
来源:http://www.bverhue.nl/g2dev/?p=65 Delphi Android USB Interface with the G2 Leave a reply I first ...
- 【转载++】fopen返回0(空指针NULL)且GetLastError是0
结论来看,是一个简单又朴素的道理——打开文件句柄用完了得给关上.表现在现象上却是着实让人费解,以至于有人还怀疑起了微软的Winodws系统来了,可笑至极.还是那句话,先把自己的屁股先给擦干净喽再怀疑别 ...
- 记数据结构MOOC-二叉树
主要的学习内容 在本章中,主要学习了二叉树的实现以及各种遍历的方法.着重介绍了前序.中序.后序三种遍历方法的递归实现,同时也描述了前序中序遍历的迭代方法. 教材的主要内容 教材是以哈夫曼编码树为主要脉 ...
- sed: unix与doc换行的转换
在Linux (Unix)平台下回车换行以\n表示 在Window平台下回车换行以\r\n表示 两者的差异导致了: 在window下看Linux的文本排版全乱 在Linux在看Window的文本则是存 ...
- sublime_text3常用配置
安装(pojie)不再赘述. 一.设置字体与编码 preferences->Settings->Settings-User,在大括号中输入如下内容: “font_size”:16.0, “ ...
- 20155233 《Java程序设计》 实验三 敏捷开发与XP实践
20155233 <Java程序设计> 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤与内容 1.在IDEA中使用工具(Code->Reformat ...
- html 第一行不缩进,第二行缩进,文字对齐
<p style="text-indent: -7rem;margin-left: 7rem;"> <img src="images/记录要求.png& ...
- 人脸识别引擎SeetaFaceEngine中Identification模块使用的测试代码
人脸识别引擎SeetaFaceEngine中Identification模块用于比较两幅人脸图像的相似度,以下是测试代码: int test_recognize() { const std::stri ...
- JS中的eval函数
最近开始慢慢学习前端的脚本了,上次碰到了一个问题,需要通过一个对象的属性名称来获得这个对象这个属性的值.如果在C#中,那么直接通过反射就可以了.而在js中,也有类似的函数,那就是eval ...
- Entity Framework中执行Sql语句
如果想在EF框架中执行Sql语句,其实很简单,EF里面已经提供了相关的方法(此处使用的EF为EF4.1版本). EF中提供了两个方法,一个是执行查询的Sql语句SqlQue ...