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);
}
}