iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#中[]的几种用法示例代码
  • 435
分享到

C#中[]的几种用法示例代码

c# []c#中[]的使用 2023-01-28 12:01:30 435人浏览 泡泡鱼
摘要

目录一、导入外部DLL函数二、结构体时表明属性总结一、导入外部DLL函数 如[DllImport(“kernel32.dll”)]这叫引入kernel32.d

一、导入外部DLL函数

[DllImport(“kernel32.dll”)]这叫引入kernel32.dll这个动态连接库。这个动态连接库里面包含了很多windowsapi函数,如果你想使用这面的函数,就需要这么引入。举个例子:

[DllImport(“kernel32.dll”)]
private static extern void FunName(arg,[arg]);

extern 作用:标识这个变量或者函数定义在其他文件 ,提示编译器遇到此变量的时,在其他模块里寻找,这里是在提供的动态库里找
示列代码:

using System;
using System.Text;
using System.Runtime.InteropServices;
namespace Windows.Help
{
    public partial class SystemInfo
    {
        [DllImport("kernel32")]
        public static extern void GetWindowsDirectory(StringBuilder WinDir, int count);
        [DllImport("kernel32")]
        public static extern void GetSystemDirectory(StringBuilder SysDir, int count);
        public static void Main () {
            const int nChars = 128;
            StringBuilder Buff = new StringBuilder(nChars);
            GetWindowsDirectory(Buff, nChars);
            String t = "Windows路径:" + Buff.ToString();
            System.Console.WriteLine(t);
        }
    }
}

二、结构体时表明属性

[StructLayout(LayoutKind.Sequential) ][StructLayout(LayoutKind.Explicit)] ,首先介绍一下 结构体和类的区别 :类是按引用传递 结构体是按值传递

进入正题:

结构体是由若干成员组成的.布局有两种

1.Sequential,顺序布局,比如

struct S1{
  int a;
  int b;
}

那么默认情况下在内存里是先排a,再排b

也就是如果能取到a的地址,和b的地址,则相差一个int类型的长度,4字节

[StructLayout(LayoutKind.Sequential)] 
struct S1
{
  int a;
  int b;
}

这样和上一个是一样的.因为默认的内存排列就是Sequential,也就是按成员的先后顺序排列.

2.Explicit,精确布局

需要用FieldOffset()设置每个成员的位置

这样就可以实现类似c的公用体的功能

[StructLayout(LayoutKind.Explicit)] 
struct S1
{
  [FieldOffset(0)]
  int a;
  [FieldOffset(0)]
  int b;
}

这样a和b在内存中地址相同

总结

到此这篇关于C#中[]的几种用法示例的文章就介绍到这了,更多相关C#中[]用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#中[]的几种用法示例代码

本文链接: https://www.lsjlt.com/news/178446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中[]的几种用法示例代码
    目录一、导入外部DLL函数二、结构体时表明属性总结一、导入外部DLL函数 如[DllImport(“kernel32.dll”)]这叫引入kernel32.d...
    99+
    2023-01-28
    c# [] c#中[]的使用
  • Oracle查看表结构的几种方法示例代码
    1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) ...
    99+
    2022-10-18
  • Kotlinobject的几种用法示例详解
    目录1.object:匿名内部类2.object: 伴生对象3.单例模式1.object:匿名内部类 在Android最常用的匿名内部类之一就是点击事件,用Java语言写的话就是下面...
    99+
    2022-12-08
    Kotlin object用法 Kotlin object
  • C#代码延时的几种实现
    目录Task.Delay();异步实现线程实现:计时器方式实现:Task.Delay();异步实现 using System; using System.Threading.Ta...
    99+
    2022-11-12
  • c++代码各种注释示例详解
    目录1、前言2、正文(危)1.以代码例子为例(1)代码段1(2)代码段2(3)代码段3(4)代码段42.其它的注释方法(1)条件编译(2)if条件1、前言 今天想带大家来了解一下注释...
    99+
    2022-11-12
  • C#调用js库的方法示例代码
    目录前言安装ClearScript引入js文件创建V8ScriptEngine对象通过js引擎加载js文件C#调用js方法实现经纬度坐标纠偏C#调用js方法判断经纬度点位是否在多边形...
    99+
    2023-01-17
    C#调用js库 C# js库 C#调用js
  • 浅谈C#中[]的几种用法
    目录一、导入外部DLL函数二、结构体时表明属性一、导入外部DLL函数 如[DllImport(“kernel32.dll”)]这叫引入kernel32.dll...
    99+
    2023-01-28
    C# []用法 C# []
  • linux下数据压缩的几种方法与查看方式(示例代码)
    1,tar命令 使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,tar命令本身不进行数据压缩,但可以在打包或解包的同时调用其它的压缩...
    99+
    2022-06-04
    linux 数据压缩 linux 数据查看
  • C++实现Dijkstra算法的示例代码
    目录一、算法原理二、具体代码1.graph类2.PathFinder类3. main.cpp三、示例一、算法原理 链接: Dijkstra算法及其C++实现参考这篇文章 二、具体代码...
    99+
    2022-11-13
  • 【python】代码换行的几种方法
    代码太长怎么办,反斜杠\引号""" ‘’'来帮忙! 在写list或者较长的字符串时候,或者多个循环造成IDE不够用时,就需要代码换行了。主要的代码换行有通用的反斜杠\和针对字符串起作用的三引号结构。 1.反斜杠 对于一般表达式...
    99+
    2023-01-31
    换行 几种方法 代码
  • c#使用多线程的几种方式示例详解
    C#中使用多线程的几种方式有以下几种:1. 使用Thread类:Thread类是C#中最基本的多线程类,可以使用它创建和控制线程。下面是一个使用Thread类创建并启动线程的示例:```csharpusing System;using ...
    99+
    2023-08-09
    C#
  • C#实现FFT(递归法)的示例代码
    目录1. C#实现复数类2. 递归法实现FFT3. 补充:窗函数1. C#实现复数类 我们在进行信号分析的时候,难免会使用到复数。但是遗憾的是,C#没有自带的复数类,以下提供了一种复...
    99+
    2022-11-13
  • c++数组排序的5种方法实例代码
    目录方法一:冒泡排序方法二:sort函数排序方法三:用交换函数swap排序方法四:快速排序方法五:归并排序总结方法一:冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。...
    99+
    2023-01-11
    c++数组排序函数 C++数组排序有几种 c++数组的排序
  • C#读取写入文件的3种方式示例代码
    目录1:二进制读写2:泛型读写:3:XML读写:不是很稳定最终效果:总结最新对文件的操作比较频繁。这里记录一下常用的几种文件读写的方式。 我这里使用窗体来做测试。 1:二进制读写 /...
    99+
    2022-11-13
  • c#中DataTable转List的2种方法示例
    在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,List<T>类是ArrayList类...
    99+
    2022-11-12
  • C++11中的引用限定符示例代码
    目录1. C++11:引用限定符2. const和引用限定符C++中有左值和右值的概念。其实,左值和右值的区分也同样适用于类对象,本文中将左值的类对象称为左值对象,将右值的类对象称为...
    99+
    2023-01-03
    C++11 引用限定符 C++ 引用限定符 C++11 限定符
  • C++实现MyString的示例代码
    MyString的构造、析构、拷贝构造、赋值运算 class String { char* str; public: String(const char* p = NULL) :...
    99+
    2022-11-13
  • Python实现12种降维算法的示例代码
    目录为什么要进行数据降维数据降维原理主成分分析(PCA)降维算法其它降维算法及代码地址1.KPCA(kernel PCA)2.LDA(Linear Discriminant Anal...
    99+
    2022-11-10
  • java实现的各种排序算法代码示例
    折半插入排序折半插入排序是对直接插入排序的简单改进。此处介绍的折半插入,其实就是通过不断地折半来快速确定第i个元素的插入位置,这实际上是一种查找算法:折半查找。Java的Arrays类里的binarySearch()方法,就是折半查找的实现...
    99+
    2023-05-31
    java 排序 算法
  • C#实现抢红包算法的示例代码
    目录二倍均值法(公平版) 线段切割法(手速版) 二倍均值法(公平版)  发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则? 1.所有人抢到金额之...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作