您的位置 首页 > 德语词汇

attribute是什么意思?用法、例句?C#自学——特性(Attribute)

各位老铁们好,相信很多人对attribute是什么意思?用法、例句都不是特别的了解,因此呢,今天就来为大家分享下关于attribute是什么意思?用法、例句以及C#自学——特性(Attribute)的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

attribute是什么意思?用法、例句?C#自学——特性(Attribute)

1、特性相当于是一个标签,是没有实际意义的,想要起作用需要使用其他的东西解读。比如一栋普通的房子,房子里面有卧室、厨房、游戏房,这些房间都是一样的,只是贴上了一个标签叫卧室、厨房、游戏房等,但这些标签没有实际意义,在游戏房做饭这也是没问题的,这些标签主要看人怎么解读,下面看例子

2、//特性的命名需要在后面加一个Attribute,然后继承Attribute,Attribute只是一个普通的类\nclassAnimalAttribute:Attribute\n{\npublicstringName{get;set;}\npublicAnimalAttribute(){}\npublicAnimalAttribute(stringname)\n{\nName=name;\n}\n}\n\n//这是一个普通的Dog类\nclassDog\n{\n//特性的调用方式就是[特性的名称,Attribute可以省略不写]\n//现在已经给Name、Age属性加上了一个Animal特性(标签),但是没有实际意义\n[Animal("姓名")]\npublicstringName{get;set;}\n[Animal("年龄")]\npublicintAge{get;set;}\n}\n\nclassPrint\n{\nstaticvoidMain()\n{\n//给dog赋值\nDogdog=newDog();\ndog.Name="Tom";\ndog.Age=18;\n\n//现在开始解读标签\nTypet=dog.GetType();//获取dog的类型\n//获取所有的属性,这里有两个属性Name,Age\nforeach(PropertyInfopropint.GetProperties())\n{\nstringname=prop.Name;//获取属性的名称,即Name,Age\nobjectvalue=prop.GetValue(dog);//获得属性的值,需要指定对象\nstringanimalName;\n\n//与下面是一样的效果\n//获得所有属性的特性,GetCustomAttributes返回的是object数组\nobject[]animalAttribute=prop.GetCustomAttributes(typeof(AnimalAttribute),false);\n//如果数组大于0,说明有数组是使用了特性的\nif(animalAttribute.Length<=0)\n{\nanimalName=null;\n}\nelse\n{\n//将object转换成特性,可能存在多个特性,取第一个就行\nAnimalAttributeattribute=(AnimalAttribute)animalAttribute[0];\n//将特性的属性取出来\nanimalName=attribute.Name;\n}\nConsole.WriteLine($"{name}({animalName})={value}");\n\t\t\t\n//与上面是一样的效果,随便用一种就行\n//直接取出指定的一个特性,返回值是object,需要进行显示转换\nAnimalAttributeanimal=(AnimalAttribute)prop.GetCustomAttribute(typeof(AnimalAttribute));\nif(animal==null)\n{\nanimalName=null;\n}\nelse\n{\nanimalName=animal.Name+"1";\n}\nConsole.WriteLine($"{name}({animalName})={value}");\n}\n}\n}

输出:

好了,文章到此结束,希望可以帮助到大家。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023