- 浏览: 255678 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
1 .描述
属性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。属性与程序实体关联后,即可在运行时使用名为“反射”的技术查询属性。
属性以两种形式出现:
-
一种是在公共语言运行库 (CLR) 中定义的属性。
-
另一种是可以创建的用于向代码中添加附加信息的自定义属性。此信息可在以后以编程方式检索。
2. 示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NetTest
{
public class TestAttribute
{
public void Test()
{
PrintAuthorInfo(typeof(CustomAttribute));
}
/*
Obsolete 属性将某个程序实体标记为一个建议不再使用的实体。每次使用被标记为已过时的实体时,
随后将生成警告或错误,这取决于属性是如何配置的,第二个参数是true时,编译时显示错误
*/
[Obsolete("please use aonther method,this is obsolate",true)]
public void TestObsolate()
{
Console.Out.WriteLine("welcome");
}
private static void PrintAuthorInfo(System.Type t)
{
System.Console.WriteLine("Author information for {0}", t);
System.Attribute[] attrs = System.Attribute.GetCustomAttributes(t); // reflection
foreach (System.Attribute attr in attrs)
{
if (attr is Author)
{
Author a = (Author)attr;
System.Console.WriteLine(" {0}, version {1:f}", a.Name, a.version);
}
}
}
//应用自定义属性
[Author("Jack",version=1.0)]
[Author("TJ",version=2.0)]
class CustomAttribute
{
public void Test()
{
Console.Out.WriteLine("Test custom attribute");
}
}
//自定义的属性,集成属性类
[System.AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,AllowMultiple=true)]
class Author : System.Attribute
{
private string name;
public double version;
public Author(string name)
{
this.name = name;
version = 1.0;
}
public string Name
{
get { return this.name; }
}
}
}
}
发表评论
-
C#拾遗系列(1):委托
2008-06-11 14:43 586一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 7081. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6151. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 7671. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 586using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 5191. 示例: using System; using Sys ... -
C#拾遗系列(8):异常
2008-06-19 11:02 595using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1145本文内容: 继承 Equal示例 结构和类 ... -
MSIL(0):简介
2009-03-04 23:06 852Microsoft Intermediate Language ... -
MSIL(1): Hello World
2009-03-09 22:14 7631. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7761: private string Co ... -
Get countries from system
2009-05-08 16:02 7951: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 10281: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1339WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 668一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 5991. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6291. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5901. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 676using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 7081. 示例: using System; using Sys ...
相关推荐
这些属性信息通常分为一般属性和自定义属性。 一般属性指的是产品模型自带的属性,比如零部件的名称、描述、产品编号、修订号、定义和分类等。这些属性直接与模型相关联,可以通过Product对象的接口来获取和设置。 ...
在C#编程中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它通常用于创建用户友好的界面,使开发者能够轻松地查看和修改对象的属性值。这个范例将向我们展示如何扩展`PropertyGrid`的功能,以...
本篇将深入探讨如何利用C#实现自定义属性编辑器,并结合UserControl和Component两种方式来实现属性编辑。 首先,理解UITypeEditor的工作原理是至关重要的。UITypeEditor是一个接口,位于System.Drawing.Design命名...
显示线体状态:自定义控件,阀门,管道,风扇,按钮,齿轮泵,容器 可以手动操作:跟plc通信完成后实现。 Plc连接 连接目标plc并且读写数据;使用三方通信库。 报警画面 当前激活的报警显示 初始化datagridview;...
首先,自定义属性是C#中一个强大的特性,允许我们在类中添加元数据,这些元数据可以用来提供额外的信息,如描述、默认值或验证规则。我们通过继承`Attribute`类来创建自定义属性。例如,我们可以创建一个名为`...
本篇将深入探讨如何在C#中使用`PropertyGrid`动态加载自定义属性,以实现更灵活的数据展示和编辑功能。 首先,我们要理解`PropertyGrid`的基本用法。`PropertyGrid`控件通过反射机制自动发现并显示对象的所有公共...
在C#中,创建自定义组件和控件通常涉及继承自已有的UI类,如`System.Windows.Forms.UserControl`或`System.Windows.Forms.Control`,然后添加自己的属性、方法和事件。开发者可以通过重写OnPaint方法来实现自定义的...
"C#自定义控件库"是指使用C#语言编写的、由开发者自定义的控件集合,这些控件可以扩展.NET Framework的标准控件集,为用户提供更丰富的界面元素和功能。自定义控件是软件开发中的一个重要环节,特别是在UI设计和用户...
在压缩包文件`MetroFolderBrowserDialog`中,可能包含了实现这个自定义对话框的所有资源,如XAML布局文件、后台代码文件(C#或VB.NET)、样式文件(XAML)等。开发者可以通过查看和学习这些文件来理解整个实现过程,...
在C#编程中,自定义用户控件是提高应用程序界面美观性和功能多样性的重要手段。本教程将基于给定的"C#自定义漂亮按钮"主题,深入讲解如何利用C#和Visual Studio 2010创建一个自定义的按钮控件。我们将主要探讨以下几...
在C#编程中,自定义控件是一种强大的工具,它允许开发者根据特定需求扩展或定制标准控件的功能。本文将深入探讨如何创建自定义控件、添加属性以及为它们添加事件,以提升软件界面的交互性和用户体验。 首先,我们要...
在C#编程中,自定义属性(Custom Attributes)是一种元数据,可以附加到代码的不同元素(如类、方法、字段等)上,用于提供额外的信息。这些信息可以在运行时通过反射来访问,使得代码更加灵活且易于扩展。本篇文章...
7. **打包与使用**:完成自定义控件后,可以将其封装到一个自定义用户控件库(User Control Library)或自定义组件库(Component Library),然后在其他项目中引用这个库,从而方便地在多个项目中复用。 在压缩包...
本主题将深入探讨如何在C#中自定义一个类似于系统默认`MessageBox`的控件。 `MessageBox`是.NET Framework提供的一种标准对话框,它用于向用户显示信息、询问问题或确认操作。然而,系统默认的`MessageBox`功能有限...
通过上述分析,我们了解到在C#中创建自定义窗体不仅涉及基础属性的设置,还包括高级图形和事件处理技术的应用。这种灵活性使得C#成为构建高度定制化用户界面的理想选择,能够满足各种复杂的应用场景需求。
自定义控件是C#编程中一个重要的概念,它允许开发者根据需求扩展或修改内置控件的功能和外观,以满足特定项目的需求。在本案例中,我们将深入探讨如何自定义ComboBox控件。 ComboBox控件是Windows Forms中一个非常...
本主题将深入探讨如何在C#的ListView中添加和使用各种自定义控件,如CheckBox和ComboBox,以增强用户体验和功能。 一、ListView控件基础 ListView控件允许我们展示数据列表,并提供了多种视图模式,如小图标、大...
【SolidWorks一键清空自定义属性】 代码在SolidWorks2020版本下编制,在其他版本中使用自行引用运行库(方法:打开SolidWorks→工具→宏→编辑→打开“删除属性.swp”→工具→引用→把丢失项取消勾选,勾选你当前...
在.NET Framework中,C#提供了一个强大的平台来创建自定义控件,这使得开发者可以根据自己的需求定制用户界面。本主题将深入探讨如何在C#中自定义一个“水晶按钮”控件,它不仅具备基本Button的功能,还可以通过...
C#重写SplitContainer收缩自定义控件