C#必须掌握的系统类

阅读更多
系统类
Type类,Object类,String类, Arrary类,Console类, Exception类,GC类, MarshalByRefObject类, Math类。
DateTime结构,Guid 结构,
     ICloneable接口,IComparable接口,IConvertible接口, IDisposable类,
集合类
     ICollection接口,IComparer接口,IDictionary接口。IDictionaryEnumerator接口 ,IEnumerable接口,
      IEnumerator接口,IHashCodeProvider接口,IList接口,
     Stack 类,Queue类 ArraryList类,Hashtable类,SortedList类 CollectionBase类,DictionBase类
     DictionEntry结构。
输入输出
字节流
  Stream类,BufferedStream类,FileStream类,MemorStream类
二进制I/O流
BinaryReader类,BinaryWriter类。
字符I/O流
     TextReader类,TextWriter类,StreamReader类,StreamWriter类,StringReader类,StringReader类,StringWriter类。
I/O枚举
FileAccess枚举,FileAttributes枚举,FileMode枚举,FileShare枚举。
文件系统操作类
FileSystemInfo类 Directory类,Directoryinfo类 ,File类,Fileinfo类
反射
        应用程序层次结构类
  Assembly类,Module类,
成员信息类
      Memberinfo类,MethodBase类,ConstructorInfo类,EventInfo类
  MainifestResourceInfo类 Methodinfo类,ParameterInfo类,propertyInfo类
       SystemReflection的其他成员,
Binder类,BindingFlags枚举 IReflect枚举 Pointer类
文件操作
  Encoding类 ,AscIIEndoing类,UnicodeEncoding类,
UTF7Encoding类 UTF8Encoding类,Decoder类
StringBuilder类
正则表达式
Capture类
CaptureCollection类
Group类
Match类 MatchCollection类
Regex类
RegexOptions枚举
多线程
Thread类,Monitor类,WaitHandle类,Mutex类 ReaderWriterLock类。ThreadPool类,Timeout类,
InterLocked类,
ThreadStart委托、
ThreadPriority枚举,ThreadState枚举,



类库是我们学习和开发的基本。 因为本人列举了一些常用的类,得到了很多网友的支持评论。为了更好的系统学习这些基础。
    本人打算写一系列的总结。希望对新手有所帮助,高手多多指点。
 
以下主要涉及是的system命名空间的常用类
     基本的Object和Type类,它构成了.NET FrameWork功能的基础。
    多用途的类。如Array、Console和String,它们被用于许多不同类型的应用程序。
     重要的基类,如EventArgs、Exception和MarshalByRefObject。这些类定义了很多派生类通用的属性可方法。
   Math类,他是一个只包含的数学函数和常量的库。
     Convert类,它提供了转换函数。
一般来通用的都会定义为静态的类。这样方面全句调用。
Type类
     Type它表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。
一个只包含的数学函数和常量的库。
可以过通过两种方法来获得一个Type对象,一种使用GetType()方法,或是使用typeOf运算符。 下面语句都将提供一个代表String类的Type对象

  
 
Type type1 = Type.GetType("System.String");
Type type2=typeof(string);

下面是一个简单的事例代码
代码

    
Object类
   是.NET FrameWork中所有类的最终父类,它为所有其它的类提供了通用的方法。
   因为其它所有的类都要由Object派生而来,所以对Object的继承就不用再随声明。 
   在C#语言提供了关键字object,它可以作为Object类的实类的一个别名。可以在任何需要Object的表达式中使用它
主要的方法
     Equals()确定两个 Object 实例是否相等。
    Finalize() 允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。
    GetHashCode() 用作特定类型的哈希函数。
    GetType() 获取当前实例的 Type。
    ReferenceEquals() 确定指定的 Object 实例是否是相同的实例。
    ToString() 返回表示当前 Object 的 String。
 
String类
    是一个非常重要,也非常特别的类。
     在.NET中String是不可改变对象,它封装了一串不能改变的字符。一旦创建了一个String对象并为它赋值,它就不可能再改变
   这里大家可以参考:博客园 李会军的一篇 你真的了解.NET中的String吗?
Array类
它类是公共语言运行时中所以数组的父类。是一个抽象的基类
它定义了对数组创建、查找、排序可修改操作的方法。
Console类
    它为控制台应用程序提供了访问标准的输入输出和错误流的方法和属性。
以下是一个控制台应用程序
    class Program
    {       static void Main(string[] args)
        {
            System.Console.WriteLine("hell World");
        }
    }
控制台应用程序也可以有返回值。 按照惯例,返回值为O表示程序正常结束,其它值(如-1)则表示有错误发生。

  代码
得到控制台的值

  代码

Environment类
    提供有关当前环境和平台的信息以及操作它们的方法。无法继承此类。
  方法 
     Exit()
终止此进程并为基础操作系统提供指定的退出代码。
    GetCommandLineArgs()
返回包含当前进程的命令行参数的字符串数组。
比较重要的属性
ommandLine  获取该进程的命令行。
   CurrentDirectory  获取或设置当前工作目录的完全限定路径。
   ExitCode  获取或设置进程的退出代码。
   HasShutdownStarted  获取一个值,该值指示是否公共语言运行库正在关闭或者当前的应用程序域正在卸载。
   MachineName  获取此本地计算机的 NetBIOS 名称。
     NewLine  获取为此环境定义的换行字符串。
     OSVersion  获取包含当前平台标识符和版本号的 OperatingSystem 对象。
    ProcessorCount  获取当前计算机上的处理器数。
   StackTrace  获取当前的堆栈跟踪信息。
   SystemDirectory  获取系统目录的完全限定路径。
     TickCount  获取系统启动后经过的毫秒数。
   UserDomainName  获取与当前用户关联的网络域名。
   UserInteractive  获取一个值,用以指示当前进程是否在用户交互模式中运行。
   UserName  获取当前已登录到 Windows 操作系统的人员的用户名。
     Version  获取一个 Version 对象,该对象描述公共语言运行库的主版本、次版本、内部版本和修订号。
   WorkingSet  获取映射到进程上下文的物理内存量。


GC类
        它可以通过编程使用一个静态的成员集合与垃圾回收器进行交互。 一般只有使用那托管代码是才需要用到System.GC类
     垃圾回收由以下步骤组成:
        1.  垃圾回收器搜索托管代码中引用的托管对象。
        2.  垃圾回收器尝试完成没有被引用的对象。
        3.  垃圾回收器释放没有被引用的对象并回收它们的内存。
Guid类
   表示全局唯一标识符 (GUID)。 这个类园子里讨论比较火热。
   大家可以看看以下面几篇文章
          关于GUID
        使用Guid做主键和int做主键性能比较
ICloneable 接口
   支持克隆,即用与现有实例相同的值创建类的新实例。
柚子实现接口:
view source

print?
public class userinfo : System.ICloneable
    {
        public userinfo(string userName, string password)
        {
            this.UserName = userName;
            this.Password = password;
        }
        public string UserName { get; set; }
        public string Password { get; set; }
 
        public override string ToString()
        {
            return string.Format("姓名:{0} 密码:{1}", this.UserName, this.Password);
        }
        public object Clone()
        {
            userinfo userinfo = new userinfo(this.UserName, this.Password);
            return userinfo;
        }
调用接口
view source

print?
01 class Program
02    {
03        static void Main(string[] args)
04        {
05            userinfo us1 = new userinfo("小武", "123456789");
06            userinfo us2 = us1;
07            userinfo us3 = us1.Clone() as userinfo;
08            us2.UserName = "小武的相等";
09            us3.UserName = "小武的克隆";
10            Console.WriteLine(us1.ToString());
11            Console.WriteLine(us2.ToString());
12            Console.WriteLine(us3.ToString());
13            Console.Read();
14         
15        }
16    }

Idisposable接口
      定义一种释放分配的资源的方法。
         1、 Finalize只释放非托管资源;
         2、 Dispose释放托管和非托管资源;
        3、 重复调用Finalize和Dispose是没有问题的;
        4、  GC.Collect();   强制对所有代进行即时垃圾回收。
        5、 Finalize和Dispose共享相同的资源释放策略,因此他们之间也是没有冲突的。
MSDN中关于这个接口的说明:
[ComVisible(true)]
public interface IDisposable{ 
  // Methods    void Dispose();
}
1.[ComVisible(true)]:指示该托管类型对 COM 是可见的.
  代码




DateTime结构
     表示时间上的一刻,通常以日期和当天的时间表示。 它有很多比较重要的方法和属性这里我就的列举了。
    它不能直接被赋值成 null,
     在SqlServer 2000中datetime 的空值即默认值为1900-01-01 00:00:00,
     C#中DateTime的空值是最小值0001-01-01 00:00:00,
    我建议是赋值成以下的方法
          DateTime s = default( DateTime );
       或是
         DateTime s = DateTime.MinValue;
      比较的时候直接
         if(s == DateTime.MinValue;)// 到了显示的时候,判断一下,如果是s == DateTime.MinValue 你就把这个字段赋值为空
Math
   为三角函数、对数函数和其他通用数学函数提供常数和静态方法。

MarshalByRefObject 类  
     允许在支持远程处理的应用程序中跨应用程序域边界访问对象。 
       Marshal 单词意思:vt. 整理;引领;编列 vi.排列, 

            应用程序域是一个操作系统进程中一个或多个应用程序所驻留的分区。
           同一应用程序域中的对象直接通信。不同应用程序域中的对象的通信方式有两种: 

               一种是跨应用程序域边界传输对象副本, 
                一种是使用代理交换消息。

   下面的代码示例演示在另一个应用程序域中执行代码的最简单方法。该示例定义一个继承 MarshalByRefObject 的 Worker 类,该类的某个方法可用来显示在其中执行代码的应用程序域的名称。该示例在默认应用程序域和新的应用程序域中创建 Worker 的实例。


  代码


下面的示例演示从 MarshalByRefObject 派生的、随后将在远程处理中使用的类。  

  代码
   Icomparable接口
      定义通用的比较方法,由值类型或类实现以创建类型特定的比较方法。
CompareTo方法  比较当前实例与同一类型的另一对象。

  代码
  
IConvertible 接口
   定义特定的方法,这些方法将实现引用或值类型的值转换为具有等效值的公共语言运行库类型。  
  代码


你可能感兴趣的:(c#)