• C# basics


    在C# language下写单元测试要用NUnit framework,N stands for .NET,包含测试方法的类要加上[TestFixture] annotation.

    建立线程用Thread类,instantiate一个thread要用new Thread(new ThreadStart(Work.DoWork)); 运行一个线程要用.start()方法。

    Nullable types have the following characteristics:

    • Nullable types represent value-type variables that can be assigned the value of null. You cannot create a nullable type based on a reference type. (Reference types already support the null value.)

    • The syntax T? is shorthand for Nullable<T>, where T is a value type. The two forms are interchangeable.

    • Assign a value to a nullable type just as you would for an ordinary value type, for example int? x = 10; ordouble? d = 4.108. A nullable type can also be assigned the value null: int? x = null.

    • Use the Nullable<T>.GetValueOrDefault method to return either the assigned value, or the default value for the underlying type if the value is null, for example int j = x.GetValueOrDefault();

    • Use the HasValue and Value read-only properties to test for null and retrieve the value, as shown in the following example: if(x.HasValue) j = x.Value;

      • The HasValue property returns true if the variable contains a value, or false if it is null.

      • The Value property returns a value if one is assigned. Otherwise, a System.InvalidOperationException is thrown.

      • The default value for HasValue is false. The Value property has no default value.

      • You can also use the == and != operators with a nullable type, as shown in the following example: if (x != null) y = x;

     

    readonly keyword:

    readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数.

    与Java里的final比较:

    ==================Quote starts===================

    The final keyword has several usages in Java. It corresponds to both the sealed and readonlykeywords in C#, depending on the context in which it is used.

    Classes

    To prevent subclassing (inheritance from the defined class):

    Java

    publicfinalclassMyFinalClass{...}

    C#

    publicsealedclassMyFinalClass{...}

    Methods

    Prevent overriding of a virtual method.

    Java

    publicclassMyClass{publicfinalvoid myFinalMethod(){...}}

    C#

    publicclassMyClass:MyBaseClass{publicsealedoverridevoidMyFinalMethod(){...}}

    As Joachim Sauer points out, a notable difference between the two languages here is that Java by default marks all non-static methods as virtual, whereas C# marks them as sealed. Hence, you only need to use the sealed keyword in C# if you want to stop further overriding of a method that has been explicitly marked virtual in the base class.

    Variables

    To only allow a variable to be assigned once:

    Java

    publicfinaldouble pi =3.14;// essentially a constant

    C#

    publicreadonlydouble pi =3.14;// essentially a constant

    As a side note, the effect of the readonly keyword differs from that of the const keyword in that the expression is evaluated at runtime rather than compile-time, hence allowing arbitrary expressions.

    ==================Quote ends===================

  • 相关阅读:
    大魔头视频解析 线路收集(持续更新)
    如何配置双网?
    pom配置资源文件中的二进制文件乱码打不开如excel
    漏洞复现-CVE-2017-7525-Jackson远程代码执行
    漏洞复现-CVE-2018-1000861-jenkins远程命令执行
    漏洞复现-wooyun-2015-110216-Elasticsearch写入webshell
    漏洞复现-CVE-2015-5531-ElasticSearch 目录穿越
    漏洞复现-nginx_parsing_vulnerability-nginx解析漏洞
    漏洞复现-insecure-configuration-nginx不安全的配置
    漏洞复现-CVE-2018-1273-Spring Data Commons 远程命令执行
  • 原文地址:https://www.cnblogs.com/chayu3/p/3458651.html
Copyright © 2020-2023  润新知