特性[DllImport(“demo.dll“)]【C#】

本文介绍了C#语言中的特性使用,包括系统提供的特性用于编译时验证,自定义特性扩展元数据,以及动态链接库中托管和非托管代码的交互。
摘要由CSDN通过智能技术生成

C#特性是一种用于在编译时向程序元素添加声明性信息的语言结构。

下面是C#特性的使用方法:

1.使用系统提供的特性:

可以使用系统提供的特性来标记类、方法、属性等,以便在编译时进行验证或者提供其他信息。例如,可以使用Obsolete特性标记一个方法已经过时,以便在编译时发出警告。

[Obsolete("This method is obsolete, use newMethod instead.")]
public void oldMethod()
{
    // ...
}

2.自定义特性:

可以自定义特性来标记自己的类、方法、属性等。自定义特性需要继承自Attribute类,并且可以包含属性、字段、方法等。

[AttributeUsage(AttributeTargets.All)]
public class TestAttribute : Attribute
{
    public int TestProp { get; set; }
    public string TestField;
    public void Show()
    {
        Console.WriteLine("特性中的方法");
    }
}

3.使用特性:

可以使用特性来标记类、方法、属性等。使用特性时需要在目标元素前加上特性的名称,并且可以为特性的属性赋值。

[Test(TestProp = 123, TestField = "test")]
public class MyClass
{
    [Test]
    public void MyMethod()
    {
        // ...
    }

    [Test(TestProp = 456)]
    public int MyProperty { get; set; }
}

4动态链接库:

//提供了托管和非托管之间的相互调用功能
using System.Runtime.InteropServices;

namespace C_ShapeInvole
{
    class Program
    {
        static void Main(string[] args)
        {
            int result = C_DllInvoke.Add(10, 2);
            Console.WriteLine(result);
        }
    }
    ///调用者类
    public class C_DllInvoke
    {
        [DllImport("C_Dll.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        public static extern int Add(int a, int b);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值