usingSystem;
namespaceConsoleApplication1
{
//定义枚举
[System.Flags()]
publicenumAccountsE
{
Saveings=0x0001,
Checking=0x0002,
Brokerage=0x0004
}
//自定义特性
[System.AttributeUsage(AttributeTargets.Class)]
publicclassAccountsAttribute:Attribute
{
publicAccountsEaccounts;
publicAccountsAttribute(AccountsEaccounts)
{
this.accounts=accounts;
}
}
[ConsoleApplication1.Accounts(AccountsE.Saveings)]
classChildAccount{}
[ConsoleApplication1.Accounts(AccountsE.Saveings|AccountsE.Checking|AccountsE.Brokerage)]
classAdultAccount{}
classClass1
{
[STAThread]
staticvoidMain(string[]args)
{
CanWriteCheck(newChildAccount());
CanWriteCheck(newAdultAccount());
CanWriteCheck(newClass1());
}
publicstaticvoidCanWriteCheck(objectobj)
{
//构造AccountsAttribute实例
AccountsAttributechecking=newAccountsAttribute(AccountsE.Checking);
//通过Attribute.GetCustomAttribute的静态方法来得到指定的特性的实例,然后就可以读取实例的属性了,用此来判断
//依据
AttributevalidAccounts=Attribute.GetCustomAttribute(obj.GetType(),typeof(AccountsAttribute),false);
if(validAccounts!=null)
{
AccountsAttributetmpAccounts=validAccountsasAccountsAttribute;
if((checking.accounts&tmpAccounts.accounts)==checking.accounts)
{
Console.WriteLine("{0}typescanwritechecks.",obj.GetType());
}
else
{
Console.WriteLine("{0}typecannotwritechecks.",obj.GetType());
}
}
else
{
Console.WriteLine("{0}typecannotwritechecks.",obj.GetType());
}
}
}
}
分享到:
相关推荐
for presentation attribute and elements is required. HTML 4 includes mechanisms for style sheets, scripting, embedding objects, improved support for right to left and mixed direction text, ...
xml转json时的依赖包, Size: 421.45 KB Detail: META-INF/ META-INF/MANIFEST.MF 1.15 KB nu/ nu/xom/ nu/xom/ASCIIWriter.class 499.0 bytes nu/xom/Attribute$Type.class 2.04 KB nu/xom/...
所涉及的交通预测相关的模型,其原文章。注:仅学习使用哈~主要包含的模型:STGCN、DCRNN、ASTGCN、Graph wavenet、STGNN、STSGCN、STFGNN。 模型所在的文章分析链接:(注:下述链接预计在2025年发布) ...
本文将深入探讨JSP标签,特别是自定义标签,并解释如何通过`web.xml`配置文件来引入标签库描述文件,以便在JSP页面中使用这些标签。 首先,JSP标准标签库(JSTL)是一套预定义的标签,用于处理常见的任务,如迭代、...
问题记录 记录项目中的一个问题,不知什么时候,运行项目会出现这个错误: 解决方法 buildscript { repositories { ... classpath 'com.android.tools.build:gradle:3.6.2' } } 反思 项目出现问题
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"... <xsd:attribute name=
在.NET框架中,C#的特性(Attribute)是一种元数据,可以附加到代码的各种元素上,如类、方法、属性等,以提供额外的信息。这些信息可以在运行时被反射机制读取,从而实现各种功能。在标题“C#特性Attribute的实际...
编译错误2: gcc -g -O2 -o skyeye skyeye.o ./utils/libutils.a ./arch/arm/libarm.a ./device/libdev.a ./arch/mips/libmips.a ./arch/ppc/libppc.a ./arch/bfin/libbfin.a ./arch/mips/libmips.a ./arch/coldfire...
这是 Tsai 等人在 2008 年发表的论文“A Discretization Algorithm Based on Class-Attribute Contingency Coefficient”中出现的离散化方法的正确 MATLAB 实现。 如果您尝试了其他一些实现,但没有收到论文中报告...
问题描述 在使用paddlepaddle进行深度学习过程中需要导入Ploter from paddle.v2.plot import Ploter 但出现问题: Traceback (most recent call last): File D:/xxx.py, line 13, in from paddle.v2.plot import...
在Spring框架中,自定义标签是一项非常实用的功能,它允许我们根据项目需求创建自己的XML配置元素,提升代码的可读性和可维护性。本篇将深入探讨如何扩展Spring,实现自定义标签,包括schema配置、自定义标签的定义...
3、例子中实现了一个自定义的Attribute:DisplayNameAttribute和一个自定一个TypeConverter:EnumConverter,以支持显示的值与实际选中的值可以不同并一一对应。 注意,各个属性均是自己定义的一个枚举类型...
在C#编程语言中,特性(Attribute)是一种元数据,它可以提供附加信息到代码的不同元素,如类、方法、属性等。这些元数据在编译时不会直接影响代码的行为,但可以在运行时通过反射机制被程序读取和使用,从而实现...
AMap.plugin(['AMap.Marker'], function () { initMap(); }); ``` 在上述代码中,`${latitude}`和`${longitude}`代表从Servlet传递过来的纬度和经度,它们将在JSP页面渲染时被替换为实际值。 总结一下,这个例子...
ffmpeg -i audio1.mp3 -i audio2.mp3 -filter_complex "[0:a][1:a]amix=inputs=2[a]" -map "[a]" output.mp3 ``` FFmpeg的安装和使用涉及多方面知识,包括编译原理、多媒体处理、编码标准等。熟练掌握FFmpeg能极...
### Android XML Attribute详解 在Android开发中,XML文件扮演着非常重要的角色,特别是在定义界面布局、样式、动画等方面。为了帮助开发者更好地理解Android中的各种XML属性及其用途,本文将详细介绍部分核心XML...
A lovely clock view. 中文 Here's the normal effect: Here's the effect when the alarm go off: Here's the effect when using custom colors: Use Add it in your root build.gradle at the end of ...
C#的Attribute是一种元数据,它允许我们向代码添加额外的信息,这些信息可以在编译时或运行时被程序集、编译器、反射或其他工具使用。Attribute不是代码的一部分,它们不直接影响程序的执行,但提供了方便的方式来...
BeRoot, 特权升级项目 Windows/Linux/Mac BeRoot项目BeRoot项目是一个发布工具,用于检查常见的以找到一种方法来升级我们的特权。它已经被添加到 pupy 项目作为一个post开发模块( 所以它将在内存中执行而不需要触摸...