,,C# AttributeUsage使用案例详解

,,C# AttributeUsage使用案例详解

本文主要介绍C# AttributeUsage用例的详细说明。本文通过一个简单的案例,说明了对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

# C# AttributeUsage的使用情况如何?首先,让我们知道什么是AttributeUsage类。它是另一个预定义的特性类,AttributeUsage类的作用是帮助我们控制自定义特性的使用。实际上,AttributeUsage类描述了使用的自定义功能,如和。

应该理解# C# AttributeUsage的用法:

属性有三个属性,我们可以把它们放在自定义属性的前面。

ValidOn

通过这个属性,我们可以定义自定义特性应该放在哪个程序实体的前面。可以放置属性的所有程序实体都列在AttributeTargets枚举器中。我们可以通过OR运算组合几个AttributeTargets值。

允许多重

这个属性标记了我们的自定义特性是否可以多次放在同一个程序实体的前面。

遗传的

我们可以使用这个属性来控制定制特性的继承规则。它标志着我们的特征是否可以遗传。

使用C#属性用法示例:

让我们做一些实际的事情。我们将刚才的AttributeUsage属性放在Help属性之前,期望用它的帮助来控制Help属性的使用。

使用系统;

[属性用法(属性目标。Class),AllowMultiple=false,Inherited=false ]

公共类HelpAttribute:属性

{

public help attribute(String Description _ in)

{

this . Description=Description _ in;

}

受保护的字符串描述;

公共字符串描述{

获取{

返回this.description

}

}

}

让我们来看看AttributeTargets。班级第一。它规定帮助功能只能放在类的前面。这意味着以下代码将生成错误:

[Help('这是一个无所事事的类')]

公共类AnyClass

{

[Help('这是一个什么都不做的方法')]//错误

public void AnyMethod()

{

}

}

编译器报告了以下错误:

AnyClass.cs:属性“Help”在此声明类型中无效。

它仅在“class”声明中有效。

我们可以使用属性目标。所有这些都允许将帮助功能放在任何程序实体的前面。可能的值有:

组装,

模块,

类,

结构,

枚举,

构造者,

方法,

财产,

场,

事件,

界面,

参数,

代表,

All=程序集|模块|类|

结构|枚举|构造函数|

方法|属性|字段|事件|

接口|参数|委托,

Class members=Class | Struct | Enum |

构造函数|方法|属性|字段|

事件|委托|接口)

考虑AllowMultiple=false。它规定一个特征不能重复放置。

[Help('这是一个无所事事的类')]

[Help('它包含一个什么都不做的方法')]

公共类AnyClass

{

[Help('这是一个什么都不做的方法')]//错误

public void AnyMethod()

{

}

}

它产生了一个编译时错误。

AnyClass.cs:重复的“Help”属性

好了,现在我们来讨论这最后一个属性。继承的,指示当某个功能放在基类上时,该功能是否可以由派生类继承。

[Help('BaseClass')]

公共类别库

{

}

公共类Derive : Base

{

}

# C# AttributeUsage有四种可能的使用组合:

[Help('BaseClass')]

公共类别库

{

}

公共类Derive : Base

{

}

使用# C# AttributeUsage的第一种情况:

如果我们查询(我们将在后面看到如何在运行时查询类的特征)派生类,我们将发现Help属性不存在,因为inherited属性被设置为false。

使用# C# AttributeUsage的第二种情况:

与第一种情况相同,因为inherited也被设置为false。

# C# AttributeUsage的使用在第三种情况下:

为了解释第三和第四种情况,让我们首先向派生类添加一些代码:

[Help('BaseClass')]

公共类别库

{

}

[Help('DeriveClass')]

公共类Derive : Base

{

}

现在让我们查询帮助功能。我们只能获取派生类的属性,因为inherited设置为true,而AllowMultiple设置为false。因此,基类的Help属性被派生类的Help属性重写。

使用# C# AttributeUsage的第四种情况:

在这里,我们会发现派生类既有基类的帮助功能,又有自己的帮助功能,因为AllowMultiple设置为true。

C# AttributeUsage的相关内容就介绍到这里,希望能帮助你了解和掌握C# AttributeUsage的使用。

这就是本文对C# AttributeUsage用例的详细解释。有关C# AttributeUsage使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 设计一个简单的C#控制台应用程序,C#控制台程序,C# 创建控制台应用程序
  • 深入解析windows第8版,深入解析C#(第4版)
  • 数组代码,c# 数组操作,C# 数组实例介绍(图文)
  • 学会C#要多久,学会c#要多久,c#学习之30分钟学会XAML
  • 回溯法01背包问题c,回溯法求解01背包问题伪代码,C#使用回溯法解决背包问题实例分析
  • xml文件转义字符,xml转意字符,C# XML中的转义字符操作
  • winform 进度条控件,c# 进度条使用
  • winform 进度条控件,c# 进度条使用,C#使用winform实现进度条效果
  • winform backgroundworker,c# isbackground
  • winform backgroundworker,c# isbackground,C# BackgroundWorker用法详解
  • lua与c#交互,lua c#
  • lua与c#交互,lua c#,ToLua框架下C#与Lua代码的互调操作
  • linq c#,linq原理 c#
  • linq c#,linq原理 c#,c#中LINQ的基本用法实例
  • java decimal保留两位小数,sql中decimal函数保留2位小数,C#中decimal保留2位有效小数的实现方法
  • 留言与评论(共有 条评论)
       
    验证码: