C#基础

1.  void Main(string[] args)
Code

2. 控制台交互式处理用户输入
Code


 类型转换
(类型)变量
Convert.toXXX(变量)
修饰
public   可以被外部成员调用   
internal   可以在当前项目调用   
protected   只能在被类的成员和该类的子类调用   只能让当前命名空间访问  internal 访问仅限于当前程序集。
private   只能在被类的成员调用

3. 字符串与字符及数组类型,结构,接口,枚举
string s = "abc";//双引号
char c= 'a';//单引号
string[] s=new string[6];//字符数组

数组

结构是值类型,而不是引用类型,所以不支持继承!结构被存在堆栈中或者是内联。结构在精心下可以提高存储效能。例如,定义一个与类有着相同信息的结构可以大大地减少存储空间
struct Point 

public int x, y; 
public Point(int x, int y) { 
this.x = x; 
this.y = y; 

}
接口
接口包含以下成员:方法、属性、索引和事件
接口示例
枚举
定义
enum Color { 
Red, 
Blue, 
Green 

调用
Color color1;


4.
控制语句
if else
(表达式)?  : 操作1 ; 操作2
switch(数字,字符/串,other) case break default
标签(A1):   goto 标签(A1);
while(){}
do{}while();
for(;;){}
foreach( 类型变量 in 类型集 ){}
break , continue

5. 方法

属性 修饰符 返回值类型 方法名(参数) { 语句 }

四种类型的参数:out(输出),ref(引用),params(数组)和value(值)。
void method1(out string s) 
      out(输出): 一旦该变量被赋了值,在程序返回之后,输出参数就被拷贝到调用者的参数中。所以,在方法返回之前,必须给输出参数赋值。
void method1(ref string s) 
      ref (引用) : 即引用可作为参数来传递,即该引用被拷贝到栈中,其引用的对象同调用者的实参所引用的对象是同一个
void method1(params string[] names) 
      params(数组)须是一维或多维的数组

 


6.名称空间

using 名称空间;
namespace 名称空间 {}
名称空间可嵌套
不使用 using  调用名称空间内对象时要使用全称

 7 类
构造函数;析构函数;域;方法;属性;索引;代理 ;事件;嵌套类
class 类名{}
类的静态成员

static void staticPrinter()  调用 <classname>.<static class member>
调用类的静态成员必须通过类名而不是实例名。类的静态成员的副本仅有一个。
如果没有必要实例化一个对象,可以创建静态的类成员

析构函数  ~类名(){}
继承 class 类名:父类名{} 父类的构造函数在子类的构造函数之前执行。:base.父类方法名() 可以访问父类的具有公有或者保护权限的成员, 强制访问父类方法((Parent)child).print();

继承

 

8. 多态性

 

虚方法

 

using System;
public class DrawingObject
{
public virtual void Draw()
{
Console.WriteLine(
"I'm just a generic drawing object.");
}
}

virtual修饰符,该修饰符表明:该基类的派生类可以重载该方法
带有重载方法的派生类

Code

实现多态性的程序

Code


9. 属性

Code


10. 索引指示器

Code

 

重载的索引指示器

Code

带有多个参数的索引指示器

public object this[int param1, int paramN]
{
get
{
// process and return some class data
}
set
{
// process and assign some class data
}
}


 11. 异常处理
用 try-catch 捕获异常
用try-finally 清除异常
用try-catch-finally 处理所有的异常 
溢出校验checked{代码段}  非校验unchecked {}
catch(System.Exception e)
catch (OverflowException oe)
不能用ref或out 修饰符传递 e 或 oe 对象给一个方法,也不能赋给它一个不同的值。try 后可跟多个catch 但要注意异常出现与捕捉的顺序

Runtime提供的标准异常

重新引发一个异常  cath{..... throw;}  或 throw e;
创建自己的异常类 public class MyImportantException:Exception

----------------
lock
“lock”获得一个相互排斥的对象锁定,可进行线程的加锁
lock(对象){...}是对一个对象加互斥锁,只允许一个线程访问其后大括号中语句块,直到该语句块的代码执行完才解锁,解锁后才允许其他的线程执行其语句块。

Mutex
使用Mutex类进行同步(进/线程)

Code


 全局命名空间 Global

Code

 

多线程

http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html

posted @ 2009-08-02 13:48  幽灵湖  阅读(184)  评论(0)    收藏  举报