Attribute
MADN的定义为:公共语言运行时允许添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。
我们简单的总结为:定制特性attribute,本质上是一个类,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。具体的特性实现方法,在接下来的讨论中继续深入。
我理解的定制特性,就是为目标元素,可以是数据集、模块、类、属性、方法、甚至函数参数等加入附加信息,类似于注释,但是可以在运行期以反射的方式获得。定制特性主要应用在序列化、编译器指令、设计模式等方面。
attibute实例,是在编译期进行初始化,而不是运行期
定制特性常用于在运行期获得代码注释信息,以附加信息来优化调试。
"$"作用和用法
C#中$的用法:"$"是在C#6.0出现的一个新特性,其作用相当于对String.format()的简化。
string.format()需要自己在字符串中写占位符,在后面跟上参数。如果要格式化的参数比较多,写起来就比较恶心。 而用$符号,写法就简洁多了,我们可以直接在字符串的相应位置协商自己想要替换的参数就好了。
string name = "Lixi";
int age = 22;
string str = string.Format("my name is{0}, I'm {1} years old",name,age);
string str2 = $"my name is{name}, I'm {age} years old";
全局作用符::
比如说你在全局定义了一个变量str,然后在函数里面又定义了这个str名字的变量的,这个时候你要是在函数里面直接写str,那么就是访问的函数内部的变量的。无法访问外部变量的。
这是正常的现象的。但是如果你想访问外部变量的话,那么就可以使用::str来访问的。就不会是访问内部变量了。
@ 让转移字符"\"保持原意,不要转义,
如一个地址字符串 :string path="c:\abc\";
默认的"\"是作为转义来使用的,而不是一个真的斜杠字符串
所以这个地方要取到地址,正确的写法应该是:
string path=@"c:\abc\"; //这里的@让斜杠保持原意,不要转义
或者
string path="c:\\abc\\"; //不用@ 斜杠表示转义,所以要多加个斜杠