c#知识总结1
一、C#程序结构
一个c#程序主要包括以下部分
①命名空间声明
②一个class
③class方法
④class属性
⑤一个main方法
⑥语句 和 表达式 以及 注释
简单的“Helloworld”程序
using System; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { /* 我的第一个 C# 程序*/ Console.WriteLine("Hello World"); Console.ReadKey(); } } }
运行结果为
Hello World
各部分的解释
- 程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句。(在任何c#程序中的第一条语句)
- 下一行是 namespace 声明。一个 namespace 是一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld。
- 下一行是 class 声明。类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法。
- 下一行定义了 Main 方法,是所有 C# 程序的 入口点。Main 方法说明当执行时 类将做什么动作。
- 下一行 /*...*/ 是注释。
- Main 方法通过语句 Console.WriteLine("Hello World"); 指定了它的行为。
WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。该语句会在屏幕上显示消息 "Hello, World!"。
- 最后一行 Console.ReadKey(); 是针对 VS.NET 用户的。这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。
注意事项
- C# 是大小写敏感的。
- 所有的语句和表达式必须以分号(;)结尾。
- 程序的执行从 Main 方法开始。
- 与 Java 不同的是,文件名可以不同于类的名称。
二、C#基本语法
using关键字:using System;
class关键字:用与声明一个类;
注释:/*...*/ 或 //;
成员变量:变量是类的属性或数据成员,用于存储数据(length 和 width);
成员函数:函数是一系列执行指定任务的语句。类的成员函数是在类内声明的(AcceptDetails、GetArea 和 Display);
实例化一个类:类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类;
C#关键字:
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
在 C# 中,有些标识符在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。
下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):
保留关键字 | ||||||
abstract | as | base | bool | break | byte | case |
catch | char | checked | class | const | continue | decimal |
default | delegate | do | double | else | enum | event |
explicit | extern | false | finally | fixed | float | for |
foreach | goto | if | implicit | in | in (generic modifier) |
int |
interface | internal | is | lock | long | namespace | new |
null | object | operator | out | out (generic modifier) |
override | params |
private | protected | public | readonly | ref | return | sbyte |
sealed | short | sizeof | stackalloc | static | string | struct |
switch | this | throw | true | try | typeof | uint |
ulong | unchecked | unsafe | ushort | using | virtual | void |
volatile | while | |||||
上下文关键字 | ||||||
add | alias | ascending | descending | dynamic | from | get |
global | group | into | join | let | orderby | partial (type) |
partial (method) |
remove | select | set |
简单的“Rectangle”程序
using System; namespace RectangleApplication { class Rectangle { // 成员变量 double length; double width;
// 成员函数 public void Acceptdetails() { length = 4.5; width = 3.5; } public double GetArea() { return length * width; } public void Display() { Console.WriteLine("Length: {0}", length);//此处{0}起到了占位符的作用,将后面的值放在{0}这个地方 Console.WriteLine("Width: {0}", width); Console.WriteLine("Area: {0}", GetArea()); } } class ExecuteRectangle//实例化的类 { static void Main(string[] args) { Rectangle r = new Rectangle(); r.Acceptdetails(); r.Display(); Console.ReadLine(); } } }
运行结果
Length: 4.5 Width: 3.5 Area: 15.75
三、 C#数据类型
- 值类型(Value types)
- 引用类型(Reference types)
对象(object)类型:可以被分配任何其它类型的值,需要进行类型转换。
装箱:一个值类型转换成为对象类型。
拆箱:对象类型转换成为值类型。
object obj; obj = 100; // 这是装箱
动态(dynamic)类型:由于将任何类型的值存储在动态数据类型变量中。
声明动态类型的方法:
dynamic <variable_name> = value;//格式 dynamic d = 20;//例子
字符串(string)类型:给变量分配任何字符串值。
1、两种分配形式:引号(“”)和@引号(@“”)。
String str = "C#"; @"C#";
2、string字符串前加@(称作“逐字字符串”)将转义字符(\)当作普通字符对待。
string str = @"C:\Windows"; string str = "C:\\Windows";//这两句相互等价
3、@字符串中可以任意换行,换行符和缩进空格都计算在字符串长度之内。
string str = @"<script type=""text/javascript""> <!-- --> </script>";
- 指针类型(Pointer types)
指针类型变量存储另一种类型的内存地址。
声明指针类型的方法
type* identifier;//格式 char* cptr;//例子 int* iptr;//例子