1 特性attribute定義:是乙個類,編譯時決定,不能使用變數
2 宣告和使用attribute,attributeusage
3 執行中獲取attribute:額外資訊 額外操作
4 remark封裝、attribute驗證
特性的使用:
1.定義t的擴充套件方法:validate
public static bool validate(this t t)}}
return true;
}2. 定義校驗基類abstractvalidateattribute
和需要校驗的long型別:longattribute
public abstract class abstractvalidateattribute : attribute
定義long校驗類
[attributeusage(attributetargets.property)]
public class longattribute : abstractvalidateattribute
public override bool validate(object ovalue)
4.model 屬性的校驗:
public class student
student student = new student()
if (student.validate())
------------------------------第3方主動使用特性,特性才有作用,特性本身就乙個類-----------------------------
public static void managerstudent(t student) where t : student
_");
student.study();
student.answer("123");
type type = student.gettype();
if (type.isdefined(typeof(customattribute), true))
foreach (var prop in type.getproperties())}}
foreach (var method in type.getmethods())}}
實現超大整數(超過long長度範圍)的加法運算
昨天筆試,遇到這麼乙個問題 如果系統要使用超大整數 超過long長度範圍 請你設計乙個資料結構來儲存這種超大型數字以及設計一種演算法來實現超大整數加法運算 其實這個問題很好解決,超大整數可以直接使用string來儲存。對於兩個string儲存的超大整數的相加,先比較二者長度,在短的那個前面補0,使兩...
元件的引數校驗與非props特性
父元件向子元件傳遞引數,子元件有權對這些引數進行約束,這些約束叫做引數的校驗。123 temp div vue.component temp template var vm newvue script 向上述這個 這麼寫,就會報錯 要求的是字串,傳遞過來的是數字。有的時候有這種需求,傳遞的資料要麼是...
特性的使用,反射
1.自定義特性允許吧自定義元資料與元素關聯起來。這些元資料是在編譯過程中建立的,並嵌入到程式集中。反射是乙個普通術語,他描述了了在執行過程中檢查和處理程式元素的功能。反射可以完成以下任務 列舉型別的成員 例項化新物件 執行物件的成員 查詢型別的資訊 查詢程式集的資訊 檢查應用於某種型別的自定義特性 ...