第二章 基础

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. nginx 开启phpinfo

    在nginx配置文件中加 location / { //如果是资源文件,则不走phpinfo模式 if (!-e $request_filename){ ewrite ^/(.*)$ /index.p ...

  2. 解决$ go get google.golang.org/grpc上的包被墙的问题

    今天get grpc包的时候 $ go get google.golang.org/grpc 发现拉不下来被墙了,在github.com上搜索grpc,clone到工程目录中,运行命令 go inst ...

  3. scala (8) 模糊匹配

    object MatchDemo { /** * 定义偏函数用PartialFunction来表示 * PartialFunction[T1,T2]要求传入一个参数T1,T2代表返回的类型. * 偏函 ...

  4. 20155213 2016-2017-2《Java程序设计》课程总结

    20155213 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我所期望的师生关系 预备作业2:C语言的学习的回忆 预备作业3:小议linux 第一周作 ...

  5. 实验楼学习linux第一章第四节linux目录结构及文件基本操作

    linux目录结构及文件基本操作 常用命令 切换目录 cd 当前目录 . 上一级目录 .. (.和..开头的都是隐藏文件) 查看隐藏文件 ls -a 上一级所在目录 - 当前用户home目录 ~ 获取 ...

  6. 20155232 2016-2017-2 《Java程序设计》第2周学习总结

    20155232 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 类型 基本类型 整数(short.int.long) 字节(byte) -128~127 字 ...

  7. 20155308 加分项——C语言实现Linux的pwd命令

    20155308 加分项--C语言实现Linux的pwd命令 实现要求 学习pwd命令 什么是pwd pwd' 代表的是'Print Working Directory'(打印当前目录).如它的名字那 ...

  8. 20155336 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155336 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Jav ...

  9. WCF中数据契约之已知类型的几种公开方式

    WCF中传输的数据不想传统的面向对象编程,它只传递了一些对象的属性,但是自身并不知道自己属于什么对象,所以,他没有子类和父类的概念,因而也就没有Is-a的关系,所以在WCF中,如果想维持这种继承关系, ...

  10. 原生js使用ajax

    AJAX 可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容(默认是异步) (1)使用ajax会用到XMLHttpRequest()对象 (2)然后使用open方法定义请求方法和请求 ...