zoukankan      html  css  js  c++  java
  • C# 可否对内存进行直接的操作?

    可以,用 unsafe。用的时候记得在项目属性(Properties)->生成(Build)->常规(General)中钩上允许不安全代码 (Allow unsafe code)。
    否则会出现这个错误:Unsafe code may only appear if compiling with /unsafe。

    // compile with: /unsafe

    using System;
    class UnsafeTest
    {
    // Unsafe method: takes pointer to int:
    unsafe static void SquarePtrParam(int* p)
    {
    *p *= *p;
    }

    unsafe static void Main()
    {
    int i = 5;
    // Unsafe method: uses address-of operator (&):
    SquarePtrParam(&i);
    Console.WriteLine(i);
    }
    }
    // Output: 25

    复制代码
    // compile with: /unsafe
    
    using System;
    class UnsafeTest
    {
        // Unsafe method: takes pointer to int:
        unsafe static void SquarePtrParam(int* p)
        {
            *p *= *p;
        }
    
        unsafe static void Main()
        {
            int i = 5;
            // Unsafe method: uses address-of operator (&):
            SquarePtrParam(&i);
            Console.WriteLine(i);
        }
    }
    // Output: 25
    复制代码
    复制代码
    // compile with: /unsafe
    
    using System;
    class UnsafeTest
    {
        // Unsafe method: takes pointer to int:
        unsafe static void SquarePtrParam(int* p)
        {
            *p *= *p;
        }
    
        unsafe static void Main()
        {
            int i = 5;
            // Unsafe method: uses address-of operator (&):
            SquarePtrParam(&i);
            Console.WriteLine(i);
        }
    }
    // Output: 25
    复制代码
  • 相关阅读:
    多态
    接口和抽象类
    反射
    C++ 模板和 C# 泛型的区别
    基础类库中的泛型
    运行时中的泛型
    泛型代码中的 default 关键字
    泛型委托
    泛型方法
    泛型接口
  • 原文地址:https://www.cnblogs.com/binyao/p/4891182.html
Copyright © 2011-2022 走看看