• 类型安全、线程安全


    “类型安全”

    “静态类型安全”,在编译时检查类型是否一致。

    “动态类型安全”,.net4.0里的dynamic类型,在运行时,会提前获得dynamic类型实际的类型。(异常不知道算不算?)

              string[] s = new string[10];
               for (int i = 0; i < 100; i++)
               {
                   Console.WriteLine(s[i]);
               }

    对任何引用的对象进行操作,CLR都知道此对象是何种类型的; CLR在对一个引用对象进行操作时,它先会检查此引用的类型, 查看本次操作是否有效;若无效,编译将不能通过。

    从另一个方面来说,   “C#是类型安全的”指的是:

    CLR在程序被编译时就会检查所有对象的有效性,而不是在运行时再检查所有对象的有效性,这样就会避免了在运行时 出现大的错误。

    类型安全近似于所谓的内存安全(就是限制从内存的某处,将任意的字节合复制到另一处的能力)。
    CLR一个很重要的特性就是Type安全。CLR在任何时候都知道某个对象的类型。你可以通过GetType方法获得,由于该方法不是虚函数,因此不能被覆盖,也就是说返回的值是永远真实的。

    类型安全可以静态方式实施,及早在编译时期就捕捉到潜藏的错误;或者以动态方式,在执行时期关联类型的资讯,并在必要时检测即将发生的错误。类型安全是编程语言的性质,而不是程式所自有的。例如,有可能以类型不安全的语言,编写出类型安全的程式。在此是以编程语言为主,而不讨论以个人能力维护的类型安全。

    C#中,被传递的引用参数是类型安全的。

    “线程安全”

    线程同步,确保多个线程对共享资源进行互斥访问。

  • 相关阅读:
    多线程:C#.NET中使用BackgroundWorker在模态对话框中显示进度条
    通过外接程序将Outlook邮件导出成Word文档
    [轉]FusionChartsFree参数说明
    MSIL学习资源
    FastCGI Error 2147467259 (0x80004005)
    编程实现双击某个文件用指定程序打开
    Excel api Enumerations 常量
    [轉]全面认识页面设置之PageSetup 对象
    AjaxFileUploaderV2.1增加可上传多个文件
    [轉]VB.NET and C# Comparison
  • 原文地址:https://www.cnblogs.com/zxhoo/p/1997563.html
Copyright © 2020-2023  润新知