c#基础学习杂记(二)
1。C#中结构体可以用new在栈里分配结构体空间,也可以直接声明变量就算分配空间,如
struct Point {int x; int y}
Point pt1 = new Point();
Point pt2;
这两种方式的区别是,用new会将Point中的字段初始化为0,而不用new则不会,在使用前还需要初始化变量,C#规定变量初始化以后才能使用。
2。方法中new修饰符强制派生类中的方法隐藏父类的方法。如:
class B {
public virtual void foo() { }
}
class D : B {
public override void foo(){ }
}
class N : D {
public new void foo() { }
}
3 。在.NET Framework Class Library中大概有7000多个类型,包括结构体,类,接口,枚举以及委托。这些类型包含在大概100多个命名空间中。包括:
1).IO(File and String)
包括: BinaryReader, BinaryWriter, BufferedStream, Directory, DirectoryInfo, Path, File, FileInfo, FileStream, FileSystemInfo, MemoryStream, Stream, StreamWrite, StreamReader, TextReader, TextWriter, IOException,以及System.Net.Sockets中的类
2).Collection(Hash Tables and Dynamic Arrays)
包括: HashTable, ArrayList等
3). Regular Exception
4).Internet Classes(HttpWebRequest,
HttpWebResponse,System.WebMail)
包括:Cookie, CookieClloction, Dns, FileWebQuest, FileWebResponse等
5).Data(DataReaders, DataSets,DataAdapters)
包括:Connection, Command, DataReader, DataSet, DataAdapter等
6).Reflection
4.C#中结构不支持继承,即它不能派生于其他类或结构,也不能被其他类或结构继承,但它可以继承多个接口。例外的是结构总是默认派生于System.ValueType。