.Net 常用特性

本文详细介绍了C#中Flags特性的使用方法及其如何帮助处理枚举类型,使其能够作为位标记使用,并展示了如何通过DllImport特性调用非托管代码,如Win32API函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Flags

  以Flags特性来将枚举数值看作位标记,而非单独的数值

如果没有DllImport 程序会报错。

ContractedBlock.gifExpandedBlockStart.gif示例代码
1 [Flags]
2 enum Animal
3 {
4 Dog = 1,
5 Cat = 2,
6 Duck = 4,
7 Chicken = 8
8 }
9
10 public class Test
11 {
12 public static void Main()
13 {
14 Animal ans = Animal.Cat | Animal.Dog;
15 Console.WriteLine(ans.ToString());
16 }
17 }

如果没有Flags特性,这里的结果将是"3"。 如果有Flags特性 则是:"Cat, Dog"。

2.DllImport

  DllImport特性,可以让我们调用非托管代码,所以我们可以使用DllImport特性引入对Win32 API函数的调用,对于习惯了非托管代码的程序员来说,这一特性无疑是救命的稻草。



ContractedBlock.gifExpandedBlockStart.gif示例代码
1 [DllImport("User32.dll")]
2 public static extern int MessageBox(int hParent,string msg,string caption,int type);
3 public static int Main()
4 {
5 return MessageBox(0,"net","_NET",0);
6 }

转载于:https://www.cnblogs.com/gaodao/archive/2011/04/27/2030928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值