擴充套件方法是靜態方法,它是類的一部分,但實際上沒有放在類的源**中 。
下例中的 money類需要乙個方法 addtoamount(decimal amounttoadd)。
但是 ,由於某種原因,money類源**不能直接修改 。
此時必須做的所有工作就是建立乙個靜態類,把方法 addtoamount()新增為乙個靜態方法
如果擴充套件方法與類中的某個方法同名 ,就 從來不會呼叫擴充套件方法。類中已有的任何例項方法優先
class program
;console.writeline(cash1.tostring());
cash1.addtoamount(20);
console.writeline(cash1.tostring());
console.readkey();}}
public class money
public override string tostring()
}public static class moneyextension
}
C 反射呼叫拓展類方法
今天封裝protobuf封包時候遇到乙個問題 protobuf的反序列化方法mergefrom,是寫在擴充套件類裡的 c 拓展類 通過反射獲取不到這個方法,就沒法使用type來泛型封裝.然而仔細一想,拓展類不也是類嗎,直接反射獲取拓展類方法好了 在看google.protobuf原始碼,找到這個類 ...
UnityExtensions拓展方法
可以寫一些自己需要經常呼叫的方法在unityextensions指令碼中,方便自己的開發 比如給物體新增指令碼,順帶檢測該物體是否已經掛載掛該指令碼,避免重複掛載。static public t addmissingcomponent this gameobject go where t compo...
Javascript拓展String方法
string.prototype.endwith function str string.prototype.startwith function str string.prototype.trim function string.prototype.ltrim function string.pr...