第二章 基础

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. Windos10 mysql-8.0.13安装手顺

    一.下载 1.1 官方下载地址:https://dev.mysql.com/downloads/mysql/ ,点击Download 1.2 点击 No thanks,just start my do ...

  2. python3 实现一个多级菜单小功能

    记录下一下 #!/usr/bin/env python3 ''' 需求:三级菜单 三级菜单,依次进入子菜单 ''' City = { '北京':{ '大兴区':[ '亦庄','黄村','中信新城',' ...

  3. HxUtils: 批量转换换行符,print2to3

    在 windows 和 linux 系统,换行符有时需要转换,其代码文件 HxUntils.py 如下: ''' HxUtils.py 2018 by x01 ''' import os, sys d ...

  4. Go语言中多字节字符的处理

    1 概述 Go语言的字符串是使用 UTF-8 编码的.UTF-8 是 Unicode 的实现方式之一.本文内容包括:UTF-8 和 Unicode 的关系,Go语言提供的 unicode 包和 uni ...

  5. (数据科学学习手札49)Scala中的模式匹配

    一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...

  6. 20155207JAVA第十二周课堂练习

    20155207JAVA第十二周课堂练习 教材代码检查--P98 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号 Arrays和String单元测试 在IDEA中以TDD的方 ...

  7. 20155212 实验三 敏捷开发与XP实践

    20155212 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...

  8. 《JAVA程序设计》20155214 实验一 Java开发环境的熟悉(Linux + IDEA)

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

  9. XMAPP 的安装与配置

    1.XMAPP简介 1.1.XAMPP(Apache+MySQL/MariaDB+PHP+Perl)   开头的X代表X-OS,代表可以在任何常见操作系统下使用,包括Windows.Mac.Linux ...

  10. 20155322 2017-2018-1 《信息安全系统设计》第五周 MyBash实现

    #20155322 2017-2018-1<信息安全系统设计>第五周 MyBash实现 [博客目录] 实现要求 相关知识 bash fork exec wait 相关问题 fork返回两次 ...