最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C#知識(shí)梳理——特性

2023-08-17 08:30 作者:羞澀男孩小小明  | 我要投稿

特性是什么?——一個(gè)類,繼承自Attribute??? ?形象地表示,它就是一個(gè)稱號(hào)的限定詞,或者說(shuō)“頭銜”,比如 偉大的掃帚持有者、沈陽(yáng)大街凌晨的王、燈光下的橙色衣著者保潔員老王 這就是加了一些限定詞的保潔員老王,理論上完整地描述老王,應(yīng)當(dāng)把他的所有頭銜都加上,才是完整地描述。當(dāng)然了,每個(gè)頭銜也都意味著老王有不同的“功能”。

所有的特性,追根溯源,都是繼承自Attribute 自定義的也不例外

特性的使用場(chǎng)景

主要是用于數(shù)據(jù)驗(yàn)證,可以寫在程序集、構(gòu)造函數(shù)、委托、枚舉、事件、屬性、類、字段、方法接口、返回值、參數(shù)上,都可以

也意味著幾乎所有的框架都用到了

特性使用場(chǎng)景1
特性使用場(chǎng)景2

特性分類

1、 C#系統(tǒng)自帶 功能非常強(qiáng)大,我們自定義的一般做不到這么強(qiáng)大的功能,可以去手冊(cè)查看使用說(shuō)明

2、 自定義—它就像一個(gè)正常的類

特性的創(chuàng)建:

首先必須要認(rèn)定的一點(diǎn),它是一個(gè)類,并且繼承自Attribute


特性的調(diào)用:

在調(diào)用的時(shí)候,不是這個(gè)“頭銜”往那一扔,就知道是給誰(shuí)了。所以在定義特性的時(shí)候,要賦予特性一個(gè)功能,那就是要讓它知道自己在什么地方起作用。不然亂加頭銜,都不知道加給誰(shuí)了,不知道是加給一個(gè)類還是一個(gè)方法還是一個(gè)構(gòu)造函數(shù)。

?

需要一個(gè)方法來(lái)使得標(biāo)記的特性在某個(gè)地方生效。

特性的作用過程

一個(gè)簡(jiǎn)單的邏輯—?jiǎng)?chuàng)建出來(lái)->貼上特性->用方法找出它->調(diào)用它

用法1:

知識(shí)點(diǎn):特性中也可以標(biāo)注特性

枚舉中特性的應(yīng)用,可以使得代碼更加的靈活

記住,用法都離不開特性的三步:

第一步—定義特性

第二步—標(biāo)記

第三步—調(diào)用

體現(xiàn)出來(lái)就是三個(gè)類 一個(gè)是特性類 一個(gè)是正常類(正常類、枚舉類等)一個(gè)是Invoke的類

這樣的枚舉,在使用的時(shí)候比較麻煩,為什么呢,因?yàn)樾枰ㄟ^判斷來(lái)將之于正常、凍結(jié)、刪除這些中文去對(duì)應(yīng)。并且在后期的修改中,如果想統(tǒng)一更改代表的含義,需要在代碼的各個(gè)地方進(jìn)行更改。

定義如下特性:

所以,利用此特性,可以將枚舉修改為:

至此,我們完成了特性的建立、以及標(biāo)記。那么,接下來(lái)要寫一個(gè)方法來(lái)調(diào)用特性。

至此,我們可以通過在主函數(shù)中用GetRemark來(lái)實(shí)現(xiàn)調(diào)用特性

明顯的,我們給出了一個(gè)刪除,可以看運(yùn)行結(jié)果

用法1運(yùn)行結(jié)果

用法2:

三步驟繼續(xù)來(lái)

這是一個(gè)簡(jiǎn)單的特性

這是一個(gè)簡(jiǎn)單在類中貼標(biāo)記

這是一個(gè)泛型的調(diào)用方法,用來(lái)調(diào)用特性。在每次找到對(duì)應(yīng)的特性后,進(jìn)行特性的調(diào)用。

在主函數(shù)應(yīng)當(dāng)這樣使用,那么,結(jié)果應(yīng)當(dāng)如下:

用法2的結(jié)果

那么現(xiàn)在可以提出一個(gè)問題,為什么系統(tǒng)給的特性不需要這么麻煩去調(diào)用呢?

其實(shí)是這樣的,在框架中,這些復(fù)雜的內(nèi)容給出了解決的方法,所以系統(tǒng)自帶特性用起來(lái)很方便,只需要貼標(biāo)簽即可。

我們自己寫的特性也可以在使用的時(shí)候稍微方便一點(diǎn)———改進(jìn)一下,改成擴(kuò)展方法。即靜態(tài)類里的靜態(tài)方法。

將invoke類改動(dòng)

改進(jìn) 靜態(tài)方法
改進(jìn)后的使用方法

用法3——特性驗(yàn)證:

我個(gè)人覺得,用通俗一點(diǎn)的話來(lái)說(shuō)就是,有了這個(gè)特性以后,你就必須怎么樣,才能怎么樣。

就像是碧桂園門口的保安,只讓業(yè)主和給了好處的人進(jìn)小區(qū),其他閑雜人等不得進(jìn)入。

這也是特性的很重要的用法,數(shù)據(jù)驗(yàn)證。

前文都是在很類、字段里找一個(gè)特性 而可不可以找多個(gè)特性呢?當(dāng)然可以。

?

三步走

抽象類 一個(gè)特性

繼承自上邊的抽象類 二號(hào)特性

繼承自上邊的抽象類 三號(hào)特性

繼承自上邊的抽象類 四號(hào)特性

一個(gè)普通類

調(diào)用的類

使用



總結(jié):記住三步原則,即可掌握特性的基本使用!


C#知識(shí)梳理——特性的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
清水河县| 育儿| 沅陵县| 嘉兴市| 勃利县| 金坛市| 陵水| 大丰市| 民乐县| 湛江市| 兰溪市| 建湖县| 都江堰市| 富裕县| 吴川市| 离岛区| 丘北县| 大冶市| 梨树县| 平利县| 虞城县| 双城市| 二手房| 依兰县| 顺昌县| 大埔区| 武安市| 康乐县| 广宗县| 达拉特旗| 东源县| 石嘴山市| 中宁县| 平顶山市| 介休市| 彰化市| 榆社县| 永清县| 邢台县| 博客| 金坛市|