第二章 基础

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#基础的更多相关文章

  1. C#高级编程 (第六版) 学习 第一章:.Net体系结构

    第一章 .Net体系结构 1,公共语言运行库(Common Language Runtime, CLR) .Net Framework的核心是其运行库的执行环境,称为公共语言运行库,或.Net运行库. ...

  2. C#高级编程 (第六版) 学习 第七章:委托和事件

    第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针. .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的. 委 ...

  3. C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换

    第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...

  4. C#高级编程(第六版)学习:第三十一章:Windows窗体

    第三十一章 Windows窗体 创建Windows窗体应用程序 在文本编辑器中输入: /* * form.cs * a simple windows form * */ using System; u ...

  5. C#高级编程 (第六版) 学习 第五章:数组

    第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存. 还可以用如下的方法: int[] myArray = new in ...

  6. C#高级编程 (第六版) 学习 第四章:继承

    第四章 继承 1,继承的类型 实现继承: 一个类派生于一个基类型,拥有该基类型所有成员字段和函数. 接口继承 一个类型只继承了函数的签名,没有继承任何实现代码.   2,实现继承 class MyDe ...

  7. C#高级编程 (第六版) 学习 第三章:对象和类型

    第三章 对象和类型 1,类和结构 类存储在托管堆上 结构存储在堆栈上   2,类成员 类中的数据和函数称为类成员 数据成员 数据成员包括了字段.常量和事件   函数成员 方法:与某个类相关的函数,可以 ...

  8. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  9. c#高级编程第七版 学习笔记 第二章 核心c#

    第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...

随机推荐

  1. 学习tp5的第二天(路由)

    一.学习路由 1.phpstudy版本的环境去掉indx.php 直接访问url phpstudy配置的环境需要设置 入口目录的 .htaccess文件如下: <IfModule mod_rew ...

  2. mysql5.6搭建主从复制

    使用MySQL 5.6,搭建主从复制.关于5.6的安装,可以参考<MySQL 5.6 rpm安装方法和碰见的问题>.   主库创建slave用户,设置复制权限, mysql> cre ...

  3. 20155213 2016-2017-2《Java程序设计》第三周学习总结

    20155213 2016-2017-2<Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类和对象的关系:类决定对象,对象反映类的性质 定义值域成员:在新建的类中定义变量,可 ...

  4. 20155220 2016-2017-2 《Java程序设计》第八周学习总结

    20155220 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第14章 NIO与NIO2 NIO简介 NIO使用频道来衔接数据结点,在处理数据时,NIO可 ...

  5. 2017-2018-1 20155321《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155321<信息安全技术>实验二--Windows口令破解 实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对管理 ...

  6. SQL创建数据库、建表、填入内容

    --创建数据库 create database Information go --使用数据库 use Information go --创建表 create table Student ( Sno ) ...

  7. 用MYSQLworkbench导出数据excel

    步骤: 1.先从数据库中将表导出,右键需要导出的表格——>Table Data Export Wizard 2.点击Next,选择你需要把数据存放的文件路径.导出的数据格式(表格的话就默认选择C ...

  8. ESP8266 station模式下建立client、server TCP连接

    程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...

  9. jenkens其实是代码上传工具

    Jenkins 持续集成使用教程 用 jenkins 有什么好处 通过规范化来完成,简单,繁琐,浪费时间的重复工作 规范化工作,以免出现低级错误 实现随时随地任何人一键构建 ...... 安装 jen ...

  10. Linux文件归档和解压缩

    1.tar tar命令相当于归档,不做压缩,解压同样也是把归档文件释放出来(归档通俗上可以理解为把文件分类,把一些文件放到一个包中归类,方便用户管理) 解包:tar -zxvf file.tar #解 ...