zoukankan      html  css  js  c++  java
  • C#学习笔记(比较)

    1 封箱和拆箱

      封箱(boxing)是把值类型转换为System.Object类型,或者转换为由值类型实现的接口类型。拆箱(unboxing)是相反的过程。

    封箱:

    struct myStruct

    {

      public int Val;

    }

    把结构放在object类型的变量中,以封箱

    myStruct valtype1 = new myStruct();

    valtype1.Val = 5;

    object.refType = valType1;

    拆箱:
    valType1.Val = 6;

    myStruct valType2 = (myStruct)refType;

    Console.WriteLine("valtype2.Val = {0}",valType2.Val);

    输出结果:

    valType2.Val = 5;

    注意:如果修改上面结构体为类类型

    class myStruct

    {

      public int Val;

    }

    就会出现下面的输出结果:

    valType2.Val = 6;

    也可以把值类型封装到一个接口类型中,只有他们实现这个接口就行。

    interface IMyInterface

    {

    }

    struct myStruct : IMyInterface

    { 

      public int Val; 

    }

    接着把结构封装到一个IMyInterface类型中

    myStruct valType1 = new myStruct();

    IMyInterface refType = valType1;

    然后用一般的数据类型转换语法拆箱他

    myStruct valType2 = (myStruct)refType;

    2 is运算符

    <operand> is <type>

    3 值比较

    3.1 运算符重载(operator overloading)

      要重载运算符,可给类添加运算符类型成员(他们必须是static)。一些运算符有多种用途,因此我们还指定了要处理多少个操作数,以及这些操作数的类型。一般情况下,操作数的类型与定义运算符的类相同,但也可以定义处理混合类型的运算符。

    实例:

    public class AddClass1

    {

      public int val;

      public static AddClass1 operator + (AddClass1 op1,AddClass1 op2)

      {

        AddClass1 returnVal = new AddClass1();

        returnVal.val = op1.val + op2.val;

        return returnVal;

      }

    }

    重载所有的二元运算符都是一样的,一元运算符看起来也是类似的,只有一个参数。

  • 相关阅读:
    SQL server 日期格式转换style 对应码
    postman的使用方法详解!最全面的教程
    港澳台身份证小结
    使用设置自定义对话框的大小,位置,样式以及设置在安卓桌面上弹出对话框
    android自定义Activity窗口大小(theme运用)
    C#调用RabbitMQ实现消息队列
    C# http请求带请求头部分
    Android如何屏蔽home键和recent键
    针对jquery的优化方法,你知道几条
    试图从目录中执行 CGI、ISAPI 或其他可执行程序
  • 原文地址:https://www.cnblogs.com/DannyShi/p/4501705.html
Copyright © 2011-2022 走看看