1.在C#中,只有在声明变量并且对其进行初始化时才会为其分配内存空间。当在for循环内部进行初始化时,变量的作用域在for循环的内部。当在外部初始化该变量时,保证变量的范围在Main方法之内,因此可以保证for循环正确使用。
2.ref关键字重载 void Add(int x,int y) void Add(ref int x,ref int y)
3.static void Main()
static void Main(string[] args)
static int Main()
static int Main(string[] args)
4.把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作。
析构函数是由垃圾回收器控制的.
5.遍历哈希表中所有的元素
foreach(DictionaryEntry myDE in myHashtable)
{
Console.WriteLine(“\t{0}\t{1}”,myDE.Key,myDe.Value);
}
哈希表查找方法
Hashtable.Contains
Hashtable.ContainsKey
Hashtable.ContainsValue
6.Queue集合(先进先出) 队列
Enqueue讲一个元素添加到Queue的末尾
Dequeue方法移除并返回位于Queue开始处的对象
Peek方法返回位于Queue开始处的对象,但不将其移除。使用前后元素个数没有发生变化
7.Stack集合(后进先出) 堆栈
Push可在Stack的顶部插入一个元素
Pop可在Stack的顶部移除一个元素
Peek可返回处于Stack顶部的元素,但不将其从Stack中移除
8.SortedList 表示键/值对的集合,这些键/值对按键排序并可按照键和索引访问。(ArrayList与Hashtable的结合)对于只需要单一特性的集合,可以选择用ArrayList或Hashtable,而确实同时需要键/值对和顺序索引的,那么SortedList则为最佳选择。
9.Dictionary 泛型类 Dictionary提供了一组键到一组值的映射。
查找条目的方法ContainsKey() ContainsValue()
遍历Dictionary KeyValuePair,表示Dictionary中的条目
Foreach(KeyValuePair<string,string> myKvp in myDic)
{
Console.WriteLine(“\t{0}\t{1}”,myKvp.Key,myKvp.Value);
}
10.集合初初始化器的声明集合类的初始化
List<Cat> cats=new List<Cat>
{
new Cat(){Name=”张三”,Age=8}, //初始化并赋值
new Cat(){Name=”李四”,Age=12},
new Cat(){Name=”王五”,Age=23},
}
11. abstract抽象类的派生类必须实现所有抽象方法。抽象类中的非抽象方法,不必再子类中实现,不像接口一样必须实现。
12.密封类、方法 关键字sealed 不能被继承
13.高级转换 is运算符 强制转换() as运算符
14.virtual,override,static关键字
15.const常量
16.迭代器: 迭代器代码使用 yield return 语句依次返回每个元素。 yield break将终止迭代。
17.分部类 partial 1.各个部分必须具有相同的可访问性,如public、private 等。2. 所有部分都必须使用partial 关键字。3.在类的两个部分分别使其继承不同的类和接口,运行时.NET Framework能够很好地将其结合。4. partial 修饰符只能出现在紧靠关键字class、struct 或interface 前面的位置。5. 要成为同一类型的各个部分的所有分部类型定义都必须在同一程序集和同一模块(.exe 或 .dll 文件)中进行定义。分部定义不能跨越多个模块。
18.索引器 定义索引器的方式与定义属性有些类似,其一般形式如下:
[修饰符] 数据类型 this[索引类型 index]
{
get{//获得属性的代码}
set{ //设置属性的代码}
}
19.openFileDialog
openFileDialog.Title=”我的记事本 - - 打开文件对话框”;
//设置目录
Stringdir=@”C:\”;
openFileDialog.InitialDirectory=dir;
//设置过滤器
Stringfilter=”文本文件(*.txt)|*.txt”;
openFileDialog.Filter=filter;
openFileDialog.Multiselect=false; //限制多选
//显示对话框
if(openFileDialog.ShowDialog()==DialogResult.Cancel)
{
Return;
}
else
{
//新建编辑窗体并使其标题为打开的文件名
frmEdit frm=new frmEdit();
frm.Text=openFileDialog.FileName;
//读取文件的内容
StreamReader sr=newStreamReader(openFileDialog.OpenFile());
frm.RichTextBoxText=sr.ReadToEnd();
//显示窗体为MDI子窗体
frm.MdiParent=this;
frm.Show();
}
20.saveFileDialog
if(this.MdiChildren.Length==0)
{
return;
}
saveFileDaialog.Title=”我的记事本—保存文件对话框”;
//设置过滤器
string filter=”本文文件(*.txt)|*.txt”;
saveFileDialog.Filter=filter;
//设置目录
string dir=@”C:\”;
saveFileDialog.InitialDirectory=dir;
if(saveFileDialog.ShowDialog()==DialogResult.Cancel)
{
return;
}
else
{
Streamstream=saveFileDialog.OpenFile();
StreamWritersw=new StreamWriter(stream);
frmEditfrm=(frmEdit)this.;
sw.Write(frm.RichTextBoxText);
}
21”打开”对话框
private void button1_Click(objectsender, EventArgs e)
{
openFileDialog1.ShowDialog();
axWindowsMediaPlayer1.URL =openFileDialog1.FileName;
}
1. 修改表和视图
ALTER TABLE 表名
ADD 新列名
DROP 约束名
MODIFY 列名
2. select Sname,’Year of Birth’,2012-Sage,ISLOWER(Sdept) Dept from Student
3. distinct --- all
4. select * from Cno where Cnamelike ‘Wang\_Ming’ escape ‘\’ escape标识转义字符
5. 授权 grant select on table Student to User1
grant all privileges on table Student to User1 //全部权限
6. 收回 revoke select on table Student from User1