日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#學(xué)習(xí)筆記總結(jié)

C#學(xué)習(xí)筆記之explicit 和 implicit 的含義?

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、城關(guān)網(wǎng)站維護(hù)、網(wǎng)站推廣。

explicit 和 implicit 屬于轉(zhuǎn)換運(yùn)算符,如用這兩者可以讓我們自定義的類型支持相互交換,explicti 表示顯式轉(zhuǎn)換,如從 A -> B 必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換(B = (B)A),implicit 表示隱式轉(zhuǎn)換,如從 B -> A 只需直接賦值(A = B)

隱式轉(zhuǎn)換可以讓我們的代碼看上去更漂亮、更簡(jiǎn)潔易懂,所以***多使用 implicit 運(yùn)算符。不過(guò)!如果對(duì)象本身在轉(zhuǎn)換時(shí)會(huì)損失一些信息(如精度),那么我們只能使用 explicit 運(yùn)算符,以便在編譯期就能警告客戶調(diào)用端

C#學(xué)習(xí)筆記之params 有什么用?

params 關(guān)鍵字在方法成員的參數(shù)列表中使用,為該方法提供了參數(shù)個(gè)數(shù)可變的能力,它在只能出現(xiàn)一次并且不能在其后再有參數(shù)定義,之前可以

示例:

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace ConsoleApplication1 {   
  6. class App {   
  7. //***個(gè)參數(shù)必須是整型,但后面的參數(shù)個(gè)數(shù)是可變的。  
  8.  
  9. //而且由于定的是object數(shù)組,所有的數(shù)據(jù)類型都可以做為參數(shù)傳入  
  10. public static void UseParams(int id, params object[] list){   
  11. Console.WriteLine(id);for (int i = 0; i < list.Length; i++){   
  12. Console.WriteLine(list[i]);  
  13. }  
  14.  
  15. static void Main(){   
  16. //可變參數(shù)部分傳入了三個(gè)參數(shù),都是字符串類型UseParams(1, "a", "b", "c");  
  17. //可變參數(shù)部分傳入了四個(gè)參數(shù),分別為字符串、整數(shù)、浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)數(shù)組  
  18. UseParams(2, "d", 100, 33.33, new double[] { 1.1, 2.2 });  
  19.  
  20. Console.ReadLine();  

C#學(xué)習(xí)筆記之什么是反射?

反射,Reflection,通過(guò)它我們可以在運(yùn)行時(shí)獲得各種信息,如程序集、模塊、類型、字段、屬性、方法和事件,通過(guò)對(duì)類型動(dòng)態(tài)實(shí)例化后,還可以對(duì)其執(zhí)行操作

一般用于插件式框架程序和設(shè)計(jì)模式的實(shí)現(xiàn),當(dāng)然反射是一種手段可以充分發(fā)揮其能量來(lái)完成你想做的任何事情(前面好象見(jiàn)過(guò)一位高人用反射調(diào)用一個(gè)官方類庫(kù)中未說(shuō)明的函數(shù)……)

示例:

 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace Example25Lib {   
  6. public class Class1 {   
  7. private string name;private int age;  
  8.  
  9. //如果顯式的聲明了無(wú)參數(shù)構(gòu)造函數(shù),客戶端只需要用程序集的CreateInstance即可實(shí)例化該類  
  10. //在此特意不實(shí)現(xiàn),以便在客戶調(diào)用端體現(xiàn)構(gòu)造函數(shù)的反射實(shí)現(xiàn)//public Class1()  
  11.  
  12. }   
  13. public Class1(string Name, int Age)  
  14. { name = Name;age = Age;} public void ChangeName(string NewName)  
  15. { name = NewName;} public void ChangeAge(int NewAge)  
  16. { age = NewAge;} public override string ToString()  
  17. { return string.Format("Name: {0}, Age: {1}", name, age);  
  18. }  
  19.  
  20. using System;  
  21. using System.Collections.Generic;  
  22. using System.Text;  
  23.  
  24. //注意添加該反射的命名空間using System.Reflection;  
  25. namespace Example25 { class Program { static void Main(string[] args)  
  26. { //加載程序集Assembly tmpAss = Assembly.LoadFile
    (AppDomain.CurrentDomain.BaseDirectory + "Example25Lib.dll");  
  27. //遍歷程序集內(nèi)所有的類型,并實(shí)例化Type[] tmpTypes = tmpAss.GetTypes();  
  28. foreach (Type tmpType in tmpTypes)  
  29. { //獲取***個(gè)類型的構(gòu)造函數(shù)信息ConstructorInfo[] 
    tmpConsInfos = tmpType.GetConstructors();  
  30. foreach (ConstructorInfo tmpConsInfo in tmpConsInfos)  
  31. { //為構(gòu)造函數(shù)生成調(diào)用的參數(shù)集合ParameterInfo[] 
    tmpParamInfos = tmpConsInfo.GetParameters();  
  32. object[] tmpParams = new object[tmpParamInfos.Length];
  33. for (int i = 0; i < tmpParamInfos.Length; i++)  
  34. { tmpParams[i] = tmpAss.CreateInstance(tmpParamInfos[i].ParameterType.FullName);  
  35. if (tmpParamInfos[i].ParameterType.FullName == "System.String")  
  36. { tmpParams[i] = "Clark";}  
  37. //實(shí)例化對(duì)象object tmpObj = tmpConsInfo.Invoke(tmpParams);Console.WriteLine(tmpObj);  
  38. //獲取所有方法并執(zhí)行foreach (MethodInfo tmpMethod in tmpType.GetMethods())  
  39. { //為方法的調(diào)用創(chuàng)建參數(shù)集合tmpParamInfos = tmpMethod.GetParameters();  
  40. tmpParams = new object[tmpParamInfos.Length];
  41. for (int i = 0; i < tmpParamInfos.Length; i++)  
  42. { tmpParams[i] = tmpAss.CreateInstance(tmpParamInfos[i].ParameterType.FullName);  
  43. if (tmpParamInfos[i].ParameterType.FullName == "System.String")  
  44. { tmpParams[i] = "Clark Zheng";
  45. } if (tmpParamInfos[i].ParameterType.FullName == "System.Int32")  
  46. { tmpParams[i] = 27;} tmpMethod.Invoke(tmpObj, tmpParams);}  
  47. //調(diào)用完方法后再次打印對(duì)象,比較結(jié)果Console.WriteLine(tmpObj);}  
  48. Console.ReadLine();} 

文章名稱:C#學(xué)習(xí)筆記總結(jié)
轉(zhuǎn)載來(lái)于:http://www.dlmjj.cn/article/dpiiods.html