C#特性以前的时候
2014-08-11 10:34
197 查看
C#特性以前的时候,用过C#中的特性,但只是会用,什么原理,有什么用这些问题不清楚,今天就腾出时间,学习了一下。
C#中的特性使用Attribute描述。在使用时,就像是java中的批注一样。不过C#使用中括号。特性用来描述我们的数据。编译器能够识别这些特性,以附加信息的形式存放在生成的元数据中,供clr使用。
下边看一个简单的应用view plainprint?
static void Main(string[] args)
{ DisplayRunningMsg();DisplayDebugMsg();Trace("方法执行到结尾了!!");Console.Read();
} [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string Caption, int type);[Conditional("DEBUG")] private static void DisplayRunningMsg()
{ Console.WriteLine("This is debug");Console.WriteLine("开始运行Main子程序。当前时间是"+DateTime.Now);}
[Conditional("DEBUG")] [Obsolete] private static void DisplayDebugMsg()
{ Console.WriteLine("该方法已经废弃啦!!!");}
DllImport特新允许我们引入一个外部的dll,下边做一个函数的声明,我们就可以调用了。
Conditional属性表示在该种条件下就执行下边的代码 所以[Conditional("DEBUG")]此种标识的方法就只有在调试的时候才会在执行。 [Obsolete]特性标记该方法已经废弃。
运行上述代码输出(在debug模式下)
C#中的特性使用Attribute描述。在使用时,就像是java中的批注一样。不过C#使用中括号。特性用来描述我们的数据。编译器能够识别这些特性,以附加信息的形式存放在生成的元数据中,供clr使用。
下边看一个简单的应用view plainprint?
static void Main(string[] args)
{ DisplayRunningMsg();DisplayDebugMsg();Trace("方法执行到结尾了!!");Console.Read();
} [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string Caption, int type);[Conditional("DEBUG")] private static void DisplayRunningMsg()
{ Console.WriteLine("This is debug");Console.WriteLine("开始运行Main子程序。当前时间是"+DateTime.Now);}
[Conditional("DEBUG")] [Obsolete] private static void DisplayDebugMsg()
{ Console.WriteLine("该方法已经废弃啦!!!");}
DllImport特新允许我们引入一个外部的dll,下边做一个函数的声明,我们就可以调用了。
Conditional属性表示在该种条件下就执行下边的代码 所以[Conditional("DEBUG")]此种标识的方法就只有在调试的时候才会在执行。 [Obsolete]特性标记该方法已经废弃。
运行上述代码输出(在debug模式下)
相关文章推荐
- 往数据库添加的时候(只添加以前未添加的记录的写法)c#
- 今天发现c#中的实例后的对象是不能调用静态方法,以前学Java的时候是可以的.
- 今天发现c#中的实例后的对象是不能调用静态方法,以前学Java的时候是可以的.
- 对以前改的c#分页插件的补充[原创]
- [导入]可笑的是在我糊涂得不知道以后何去何从的时候,以前学的全忘光了。
- C# 2.0 —— 新特性实践之 Generic
- C# 及其特性
- C# 特性(Attribute)入门(一)
- C#中的特性Attribute
- C# 特性(Attribute)入门
- C#2.0 新特性探究(二) 委托与匿名委托
- 从C#的Singleton设计模式实现看.NET Framework特性对开发者的重要性
- C#2.0新特性探究之模拟泛型和内置算法
- C# 3.0语言新特性(语言规范):4 对象和集合初始化器
- C#2.0 新特性探究之委托与匿名委托
- 发掘 C# 特性赋予科学计算项目以威力
- 不能空着,发篇以前的C++学习笔记,不过现在在学C#
- C# 及其特性
- C# 特性(Attribute)入门(一)
- C# 3.0语言新特性(语言规范):3 拉姆达表达式