什么时候运行?它是针对我应用它的每个对象运行的,还是只运行一次?它可以做任何事情,或者它的行为受到限制吗?
我对C#中的属性一点都不太了解,我已经看到它们在很多不同的方式/地方使用,但我不认为我看到其中一些的重要性.一些肯定具有重要性,因为它们提供了显着的功能,例如[Serializable].然而,其他人似乎并不那么重要,例如我的同事用来标记财产的人[DataMember].
我想我的问题是,什么是属性以及它们如何有用?有没有办法创建自己的属性,如何判断字段/方法/类/是否具有特定属性或在这些属性中设置了什么值?
我已经创建了一个属性来处理一些信息,然后调用一个方法,但它没有被调用.
我想记录一些处理的值并存储在类中的静态字段中,这是我的类的其他方法调用的结果.
所以有人可以指导它.
[AttributeUsage(AttributeTargets.Method)]
internal class MyAttrib : Attribute
{
public MyAttrib()
{
//This is not getting called. what am i missing
Console.WriteLine("My Attrib called!!");
}
}
class MyClass
{
public MyClass()
{
Console.WriteLine("Constructor Created");
}
[MyAttrib]
public int Opt1()
{
Console.WriteLine("Op1 Performed");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
}
static void Main(string[] args)
{
MyClass cla = new MyClass();
cla.Opt1();
cla.Opt2();
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)