c#
特性
Obsolete特性
- Obsolete特性可以用于标记一个被弃用的方法,并给予用户一定的提示
- 用法在方法前加上[Obsolete(“提示”,bool a)]第二个参数a表示是否将其标记为一个错误,而不仅仅是警告(第二个参数可以不写,默认false)
- 举例:
[Obsolete("这个方法已经被弃用了,建议使用新的方法:NewMethod"),false]
static void OldMethod()
{
Console.WriteLind("旧方法");
}
static void NewMethod()
{
Console.WriteLind("新方法");
}
Conditional特性
- Conditional特性可以用于控制一个方法在整个程序中的生效与否,但并不影响这个方法被编译放进程序集
- 用法在方法前加上[Obsolete(“定义的宏”)],当作为参数的宏被定义时,该方法在程序中就会生效,反之若该宏没被定义,则该方法在当前的程序中不会生效。
- 例子
#define IsTest
[Conditional("IsTest")]
static void Test1()
{
Console.WriteLine("test1");
}
[Conditional("IsTest")]
static void Test1()
{
Console.WriteLine("test1");
}
调用者信息特性
- 调用者信息特性有三个,CallerFilePath(文件路径),CallerLineNumber(代码行数),CallerMenmberName(调用成员)
- 将特性标签用中括号加在函数参数的前面,系统会自动传进参数(不过最好设置默认值)
- 例如
static void PrintOut(string str,[CallerFilePath] string fileName = "",[CallerLineNumber] int lineNumber = 0,[CallerMenmberName] string methodName = "")
{
Console.WriteLine(str);
Console.WriteLine(fileName);
Console.WriteLine(lineNumber);
Console.WriteLine(methodName);
}
特性
- 这个特性是给方法的特性,允许方法在debug时直接跳过单步调试环节,也就是说单步调试按钮不会进入被该特性标记的方法
- 使用方法就是在方法前加上一个[DebuggerStepThrough]