成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#學習筆記總結

開發 后端
本文介紹C#學習筆記,包括params 關鍵字在方法成員的參數列表中使用、explicit 和 implicit 屬于轉換運算符,如用這兩者可以讓我們自定義的類型支持相互交換等。

C#學習筆記之explicit 和 implicit 的含義?

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

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

C#學習筆記之params 有什么用?

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

示例:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4.  
  5. namespace ConsoleApplication1 {   
  6. class App {   
  7. //***個參數必須是整型,但后面的參數個數是可變的。  
  8.  
  9. //而且由于定的是object數組,所有的數據類型都可以做為參數傳入  
  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. //可變參數部分傳入了三個參數,都是字符串類型UseParams(1, "a", "b", "c");  
  17. //可變參數部分傳入了四個參數,分別為字符串、整數、浮點數和雙精度浮點數數組  
  18. UseParams(2, "d", 100, 33.33, new double[] { 1.1, 2.2 });  
  19.  
  20. Console.ReadLine();  

C#學習筆記之什么是反射?

反射,Reflection,通過它我們可以在運行時獲得各種信息,如程序集、模塊、類型、字段、屬性、方法和事件,通過對類型動態實例化后,還可以對其執行操作

一般用于插件式框架程序和設計模式的實現,當然反射是一種手段可以充分發揮其能量來完成你想做的任何事情(前面好象見過一位高人用反射調用一個官方類庫中未說明的函數……)

示例:

  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. //如果顯式的聲明了無參數構造函數,客戶端只需要用程序集的CreateInstance即可實例化該類  
  10. //在此特意不實現,以便在客戶調用端體現構造函數的反射實現//public Class1()  
  11.  
  12. }   
  13. public Class1(string Name, int Age)  
  14. name = Nameage = 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. //遍歷程序集內所有的類型,并實例化Type[] tmpTypes = tmpAss.GetTypes();  
  28. foreach (Type tmpType in tmpTypes)  
  29. { //獲取***個類型的構造函數信息ConstructorInfo[] 
    tmpConsInfos = tmpType.GetConstructors();  
  30. foreach (ConstructorInfo tmpConsInfo in tmpConsInfos)  
  31. { //為構造函數生成調用的參數集合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. //實例化對象object tmpObj = tmpConsInfo.Invoke(tmpParams);Console.WriteLine(tmpObj);  
  38. //獲取所有方法并執行foreach (MethodInfo tmpMethod in tmpType.GetMethods())  
  39. { //為方法的調用創建參數集合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. //調用完方法后再次打印對象,比較結果Console.WriteLine(tmpObj);}  
  48. Console.ReadLine();} 

【編輯推薦】

  1. C#結構體的特點淺析
  2. 介紹C#窗體拖動事件
  3. C#讀取Excel遇到無法讀取的解決方法
  4. 概述C#.NET操作XML
  5. C#基礎概念學習筆記
責任編輯:佚名 來源: 博客園
相關推薦

2009-08-12 09:28:36

C# WiteOne

2009-08-20 15:02:57

C# If語句

2009-08-12 15:50:40

C# ListBox

2009-08-20 18:06:18

學習C#接口

2009-08-13 18:13:27

C#學習經驗

2009-08-24 15:46:46

C# SmartPho

2009-08-26 10:48:44

C# SQL命令

2009-08-31 15:27:33

C# TreeView

2009-08-21 17:53:28

C#查詢結果

2009-08-24 14:30:49

C# WMI封裝

2009-08-25 15:26:03

C#調用ImOK

2009-08-12 10:46:54

C#命名空間

2010-01-14 17:02:10

學習C++

2009-08-13 10:52:03

C#基礎概念

2009-08-21 18:01:32

C#匿名方法

2009-08-11 14:20:41

C# .NET學習經驗

2009-08-12 17:32:44

C#反射方法

2009-08-14 15:54:12

C#編程語言

2009-09-01 11:28:32

C#使用函數重載

2009-08-19 15:59:24

C#參數類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久久性 | 日韩视频在线观看一区二区 | 亚洲成人精品国产 | 精品久久久久香蕉网 | 久久久久1| 成人欧美一区二区三区 | 一区二区在线 | www.日韩av.com| 日日骚网 | 久久久久国产一区二区三区 | 极情综合网| 欧美一级免费看 | 中文字幕亚洲一区二区三区 | 91精品久久久 | 亚洲欧美中文日韩在线v日本 | 日本不卡一二三 | 欧美成人手机在线 | 少妇特黄a一区二区三区88av | 国产精品影视在线观看 | h在线看 | 天天操天天天干 | 欧美视频在线播放 | 久久婷婷国产 | 亚洲一区国产精品 | 999精品网| 中文字幕男人的天堂 | 国内自拍视频在线观看 | 亚洲一区二区三区观看 | 欧美在线观看一区二区 | 国产真实乱对白精彩久久小说 | 国产精品不卡视频 | 国产精品日本一区二区在线播放 | 中文字幕一区二区三区四区五区 | 精品在线观看一区二区 | 欧美日韩国产在线观看 | 免费观看a级毛片在线播放 黄网站免费入口 | 亚洲三级在线观看 | 日韩在线中文字幕 | 国产精品高清在线 | 日韩视频一区在线观看 | 美女一级黄 |