C# 特性(ATTRIBUTE) 技术教程文章

net2.0实现net3.5特性,如扩展方法,Linq等

差不多两年没碰net了,今天想做个小工具,于是打开了久违的VS2012,由于客户终端还是winxp时代,而且是net2.0,且升级存在限制,因此必需在2.0下开发,之前的常用库是3.5写的,而且因为3.5的扩展,linq等非常快速便捷,因此写起2.0来很别扭,网上查了查,居然找到一个很简便的办法,特地记下来:1.直接把net3.5里的System.Core.dll添加到2.0项目中(引用),属性中"特定版本"设置为false2.代码中using System.Linq;快乐的玩耍吧~原...

C# 特性(Attribute)之Flag特性

本文参考自C# 位域[flags],纯属读书笔记,加深记忆.Net中的枚举一般有两种用法(1)、表示唯一的元素序列,列入一周天里面的各天(2)、表示多种的复合状态,这个时候一般需要为枚举加上[Flags]特性为标记 下面通过代码演示[Flags]特性的作用1、不加[Flag]特性的代码 原文:http://www.cnblogs.com/GreenLeaves/p/6752822.html

C# 特性(attribute)【代码】【图】

特性的定义:公共语言运行时允许添加类似关键字的描述声明,叫做attribute,它对程序中的元素进行标注,如类型、字段、方法、和属性等。attribute和.NetFramework文件的元数据保存在一起,可以用来在运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。  定制特性attribute,本质上是一个雷,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。一、特性的通用规则。  1、定制特性可以应用的目标...

c#特性类 Attribute

AttributeFYILink:Attribute在.net编程中的应用(一)Attribute在.net编程中的应用(二)Attribute在.net编程中的应用(三)Attribute在.net编程中的应用(四)Attribute在.net编程中的应用(五)Attribute在.net编程中的应用(六)HQL: Hibernate 大全中的大全 原文:http://www.cnblogs.com/sanyejun/p/7803376.html

【LINQ技术】扩展特性和LINQ操作符【代码】

LINQ特有的编程结构LINQ就像是嵌入到C#中的强类型查询语言,尽管和SQL查询很像,但语法却并不相同,甚至还有截然相反的一面。LINQ是在.NET发展到3.5版的时候被引进的,C#和VB语言都为此做了许多工作,扩展了大量新的编程结构。一、隐式类型本地变量var——一个如此小巧的关键字却有着强大的力量。var varInt=1; var varBool=True; var varString="String, String, String";Console.WriteLine("varInt is a: {0}",varInt.GetType()....

C#网络编程一:C#网络编程常用特性【代码】【图】

特性一:委托委托是C#语言中特有的概念,相当于C/C++中的函数指针,与C/C++中函数指针的不同之处是:委托是面向对象的、类型安全的和保险的,是引用类型。因此,对委托的使用要“先定义、后声明,接着实例化、然后作为参数传递给方法,最后才能使用”。1、定义委托使用关键字delegate:delegate void SomeDelegate(type1 para1,......typen paran);2、声明委托:SomeDelegate d;3、实例化委托:d=new SomeDelegate(obj.InstanceMe...

C#-记录一些常见的语法特性【代码】

C#6.0的一些语法一、Lambda表达式的一些运用1.在属性、方法中应用   例如常规对属性的赋值:1publicbool IsNavigation { 2get { 3returnthis._navigationDestination != null; 4 } 5 }  使用Lambda表达式进行属性赋值方法: publicbool IsNagivation => this._navigationDestaion != null; 二、?和??的应用  1.?的应用 C#语法中一个个问号(?)的运算符是指:可以为 null 的类型。  在处理数据...

C#特性之数据类型【代码】

这篇文章主要通过演示类在不同发展中的不通过定义方法,来向读者表述它们之间的区别和联系。在C#1时代,我们喜欢这样定义类:publicclass Product{privatestring _name;publicstring Name {get { return _name; }}privatedecimal _price;publicdecimal Price{get { return _price; }}public Product(string name, decimal price){this._name = name;this._price = price;}publicstatic ArrayList GetArrayList(){ArrayList list = ...

Linq语法新特性

隐含类型局部变量var age =20; var username="lele"; var userlist =new [] {"a","b","c"}; foreach(var user in userlist)Console.WriteLine(user); var为关键字,可以根据后面的初始化语句自动推断类型,这个类型为强类型。初始化语句必须为表达式,不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。var声明的仅限于局部变量,不可用于字段。亦可以用于for,foreach,using等语句中。匿名类型var data =n...

C# 之 6.0 新特性【代码】【图】

VS2015内置的C#版本为6.0,学习了一下C#6.0的新特性。  特性1:自动属性初始化 (Initializers for auto-properties)  以前我们是这么写的publicstring _id = "id";publicstring Id {get { return _id; }set { this._id = value; }}  现在我们可以这样写publicstring _id { get; set; } = "id";  特性2:只读属性的初始化(Getter-only auto-properties)  像用户ID这种只读属性,我们以前是这样写的publicclass User{publi...

C#之Windows Form Application与attribute【图】

1. WPF是什么: Windows Presentation Foundation, 它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作, WPF由XAML( eXtensible Application Markup Language )语言编写。 2. Windows Form Project是由几个文件构成的:它们有不同的功能划分 3. 对于一个应用,最重要的就是对用户的各种events做出反应,那么监听器的实现就非常重要,而VS将监听器的设计界面化,我们只需要双击控件,VS就会自动生成...

C#的特性Attribute【代码】【图】

一、什么是特性  特性是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签,这个标签可以有多个。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性可以描述我们的代码,或者影响应用程序的行为。特性可以用来处理多种问题,比如序列化、数据验证、程序的安全特征等等。  特性不是修饰符而是一个有独特实例化形式...

C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究【代码】【图】

一:背景 1. 讲故事 .NET 5 终于在 6月25日 发布了第六个预览版,随之而来的是更多的新特性加入到了 C# 9 Preview 中,这个系列也可以继续往下写了,废话不多说,今天来看一下 Top-level programs 和 Extending Partial Methods 两大新特性。 2. 安装必备 下载最新的 .net 5 preview 6。下载最新的 Visual Studio 2019 version 16.7 Preview 3.1二:新特性研究 1. Top-level programs 如果大家玩过 python,应该知道在 xxx.py 中写...

C# 给枚举定义DescriptionAttribute,把枚举转换为键值对【代码】

原文链接:http://www.cnblogs.com/jm6041/p/3957712.html在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举public enum Season{Spring = 1,Summer = 2,Autumn = 3,Winter = 4}枚举名是不能出现空格,()-/等字符 我们想把Spring显示为春天,我们要自己定义说明信息,我们可以使用DescriptionAttribute,如下public enum Season{[Description("春 天")]Spring = 1,[Description("夏 天")]Summer = 2,//[Description("...

C#语言的高级特性

一 C#的委托委托的一般形式例如public delegate double MyDelegate(int x) 委托的实例化 ,下面也就是说C#中的委托是如何去调用的 MyDelegate d1 = New MyDelegate(obj.MyMethod);声明了一个委托d1。委托实际上是对函数原型的一个包装,obj.MyMethod就是这样的一个方法。 显然,obj.MyMethod是一个返回值为int类型的方法,而且这个方法已经被包装在了名为d1的这样的一 个委托中。那么委托如何去调用呢例如double r=d1(3);这样就...

使用C#的Flags特性

举个例子:我有如下的一个需求,当我想要取得用户信息的时候,会先从本地缓存中查找,找不到然后从分布式缓存中查找,最后找不到再从数据库中查询。但是有些场景我又不需要查询数据库。 所以我想建立如下这种模型。public UserEntity GetUserInfo(List<DataSource> dataSources) {var xxxx = new UserEntity();if(dataSources.Any(DataSource.Local){//从本地缓存中获取return xxxx;}if(dataSources.Any(DataSource.Distribution...

c# – 如何在使用自定义ValidationAttribute和INotifyDataErrorInfo验证另一个属性时触发对一个属性的验证【代码】

直到最近,我使用了IDataErrorInfo接口的自定义扩展版本.我的扩展程序使我能够同时处理多个错误,到目前为止,它对我很有帮助.然而,随着INotifyDataErrorInfo接口的引入,我想我会试验它,看看是否有任何改进. 在阅读了一些在线教程之后,我使用了System.ComponentModel.DataAnnotations命名空间中的各种ValidationAttributes.使用这些属性可以提供如下基本验证规则:[MinLength(3, ErrorMessage = "Name must be longer than 3 characte...

C# 面向对象的三大特性 封装 继承 多态

C# 面向对象的三大特性 https://blog.csdn.net/yiyelanxin/article/details/94388986#封装 目录 一、封装 二、继承 三、多态 C# 面向对象的三大特性分别是封装、继承、多态,下面将帮助您更深一步了解并运用这三大特性。 一、封装 封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化...

使用C#中的属性格式化字段 – DisplayFormatAttribute?【代码】

我正在寻找一种有效的方法来自动格式化实体中的数据字段 – 理想情况下使用属性. 我们需要从数据模型生成PDF文件.我们希望确保可交付成果的一致性,因此我们希望将某些格式规则应用于某些数据字段(日期,电话号码,邮政编码等).当然,我可以编写自定义属性和格式化代码,但我宁愿不重新发明轮子.我看到很多使用DataAnnotations的承诺(特别是DisplayFormat属性),但我似乎找不到任何与这些属性一起使用的内置类. 如何在非UI(即非MVC)上下文...

C#特性(Attribute)【代码】【图】

这节讲一下:特性(Attribute)。 特性,是用来给代码添加额外信息的一种手段,我们通常是将特性标记到方法,类或者属性上,在使用的这些结构的时候,通过反射(reflection)这一非常高级的技术,获取它们通过特性标记的信息,从而进行某些特殊的处理。 系统也给我们提供了一些特性,比如Serializable 标记一个可序列化的类,DebuggerStepThrough设置方法在调试时为跳过的状态。 特性的使用很简单,在结构声明的上一行,用...