亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区

當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 程序開發(fā)教程 > C# Small Tips

C# Small Tips
2009-12-23 10:52:26  作者:cnblogs  來(lái)源:cnblogs

學(xué)習(xí)和使用C#這么久,也有了些可以跟大家分享的經(jīng)驗(yàn)和教訓(xùn),這里分享下幾個(gè)關(guān)于C#開發(fā)的小技巧:

1. 輸出變量的名稱。

    需求:有時(shí)候我們?cè)跍y(cè)試或平時(shí)練習(xí)的時(shí)候可能想把變量的值和它自身的名稱一起輸入到屏幕或者其他地方,而不是自己在代碼中寫變量名。如:

    var A = 10;

    Console.WriteLine("Var Name:A,Value:{0}", A);

    實(shí)現(xiàn):實(shí)現(xiàn)這個(gè)功能有兩種方式。讀者不妨也思考一下有沒有其他更好的方式實(shí)現(xiàn)這個(gè)功能。

        a. 我首先給出通過(guò)匿名類型和反射的實(shí)現(xiàn)方式。

    public static class ObjectExtensions
    {
        
public static string GetVariableName<T>(this T obj)
        {
            System.Reflection.PropertyInfo[] objGetTypeGetProperties 
= obj.GetType().GetProperties();

            
if (objGetTypeGetProperties.Length == 1)
                
return objGetTypeGetProperties[0].Name;
            
else
                
throw new ArgumentException("object must contain one property");
        }
     }

    
//調(diào)用方式,我們通過(guò)匿名類型構(gòu)造對(duì)象,然后通過(guò)反射獲取它內(nèi)部屬性
     static void main()
     {
            
string testVar1 = "testName";
            Console.WriteLine(
new { testVar1 }.GetVariableName());

            
int testVar2 = 12345;
            Console.WriteLine(
new { testVar2 }.GetVariableName());
     }


 

    b. 通過(guò).NET 3 中的Lamda表達(dá)式這里給出另外一個(gè)更加方便的實(shí)現(xiàn)方式。

  static void WriteName<T>(Expression<Func<T>> expression)
  {
       Console.WriteLine(
"{0}={1}",
                ((MemberExpression)expression.Body).Member.Name,
                expression.Compile()());
  }
  static void main()
  {
       
string testVar1 = "testName";
        WriteName(() 
=> testVar1);
  }


 

2. 字符串轉(zhuǎn)換為基本類型

    需求:在日常編程中,我們經(jīng)常要在文件或用戶輸入界面中將一些字符串變量轉(zhuǎn)換為常用類型,當(dāng)然我們可以用System.Convert類來(lái)完成這項(xiàng)工作,但如果有大量轉(zhuǎn)換工作進(jìn)行的時(shí)候,這種代碼看起來(lái)很不方便,這時(shí)候我們可以通過(guò).net的一些新的特性來(lái)很方便的完成這項(xiàng)工作

    實(shí)現(xiàn):通過(guò)擴(kuò)展方法,反射和泛型可以很方便完成這項(xiàng)工作。

    public static class ObjectExtensions
    {
        
static T? To<T>(this string parse)
            
where T : struct
        {
            Type t 
= typeof(T);
            
if (t == typeof(int))
            {
                
int i;
                
if (int.TryParse(parse, out i))
                    
return (T)(object)i;
                
return null;
            }
            
if (t == typeof(double))
            {
                
double i;
                
if (double.TryParse(parse, out i))
                    
return (T)(object)i;
                
return null;
            }
            
//添加其他類型的轉(zhuǎn)換代碼,如DateTime,Enum,etc;
            throw new NotSupportedException(string.Format("類型:{0}轉(zhuǎn)換不支持",t.Name));
        }
     }
     
//使用函數(shù)
     static void main()
     {
       
int? a="111".To<int>();
        
double? b="111.111".To<double>();
        
int? c="bad".To<int>();
     }


 

不過(guò)這個(gè)轉(zhuǎn)換代碼中由于有兩個(gè)類型轉(zhuǎn)換才能通過(guò)編譯,所以看起來(lái)仍然沒那么舒服,希望大家能有更好的方式實(shí)現(xiàn)。

 

3. WinForm編程中線程安全調(diào)用組件。

    需求:在.net 1.0的時(shí)候在其他線程中操作Win Form 主線程組件時(shí)候是可以直接操作的,但這也帶來(lái)了潛在的風(fēng)險(xiǎn)。于是在2.0以后跨線程操作你需要通過(guò)BeginInvoke來(lái)完成該項(xiàng)操作,但這也讓代碼看起來(lái)很拖沓,有時(shí)用戶可能僅僅只需要在線程某項(xiàng)操作完成后僅僅更新窗口中的某個(gè)組件,如進(jìn)度條而已,卻需要另外寫一個(gè)函數(shù)去實(shí)現(xiàn)。

    實(shí)現(xiàn): 拖過(guò)擴(kuò)展函數(shù)和匿名方法可以很方便的完成窗口線程和其他線程之間的交互工作。下面給出了一個(gè)簡(jiǎn)單的實(shí)現(xiàn),當(dāng)然,如果你需要更安全的調(diào)用,還需要添加一些檢測(cè),如IsHandleCreated檢測(cè),另外如果你需要傳遞參數(shù),你可能需要另外定義一個(gè)委托.

    public static class ControlExtention
    {
        
public delegate void InvokeHandler();

        
public static void SafeInvoke(this Control control, InvokeHandler handler)
        {
            
if (control.InvokeRequired)
            {
                control.Invoke(handler);
            }
            
else
            {
                handler();
            }
        }
    }

   
//在form中當(dāng)用戶在非form線程中需要操作form中組件對(duì)象時(shí),調(diào)用如下
    public form:Form
    {
     
public form()
      {
        Thread t
=new  Thread(t1);
        t.start();
      }
     
void t1()
      {
            Thread.Sleep(
1000);
            
this.SafeInvoke(() => this.textBox1.Text = "Hello world");
      }
    }


 

上面只是平時(shí)碰到或者從別人那里學(xué)到的一些小的編程技巧,希望能對(duì)其他人也有所幫助。有機(jī)會(huì)的話希望能把我更多的自認(rèn)為好的總結(jié)發(fā)出來(lái)。
 


安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区
久久精品2019中文字幕| 一本一道久久久a久久久精品91| 国产精品毛片va一区二区三区| 亚州欧美日韩中文视频| www.av毛片| 久久综合久久88| 国内精品小视频在线观看| 久久久www成人免费精品| 人妻精品无码一区二区三区| 成人av免费电影| 色综合久久88色综合天天看泰| 国产一区欧美二区三区| 久久资源免费视频| 国产在线精品一区| 久久国产精品99国产精| 欧美 国产 日本| 国产精品区一区| 青青草国产免费| 精品国产一区二区三区四区在线观看 | 久热精品视频在线观看| 黄色高清视频网站| 国产精品久久久久9999小说| 精品日韩美女| 久久99精品久久久久久青青91| 国产又粗又长又爽视频| 国产av国片精品| 高清无码视频直接看| 一区不卡视频| 国产黄页在线观看| 欧美在线国产精品| 国产精品狼人色视频一区| 国产综合久久久久久| 免费99精品国产自在在线| 国产青草视频在线观看| 中文字幕第一页亚洲| 国产精品91免费在线| 日韩久久不卡| 国产精品福利在线观看网址| 国产伦精品一区二区三区免费视频 | 成人一级生活片| 亚洲一区二区三区四区视频| 91精品国产综合久久香蕉的用户体验 | 精品国产区一区二区三区在线观看 | 午夜精品久久久久久99热软件| 国产成人精品电影久久久 | 久久免费视频观看| 日韩高清av| 国产精品视频在线免费观看| 国产欧美日韩高清| 天堂精品一区二区三区| 久久精品国产精品| 成人免费视频97| 日韩美女av在线免费观看| 国产精品久久久久一区二区| 国产精品揄拍500视频| 日本不卡一区二区三区视频| 国产精品免费入口| 99热国产免费| 欧美日韩二三区| 中文字幕一区二区三区在线乱码| 国产成人综合一区二区三区| 国产专区欧美专区| 亚洲一区二区中文字幕| 日韩视频免费在线| 成人动漫在线观看视频| 欧美在线亚洲在线| 一本色道婷婷久久欧美| 久久精品福利视频| 97国产在线播放| 国产在线视频一区| 日韩wuma| 一本色道久久99精品综合| www.亚洲免费视频| 99国产精品久久久久老师| 青青草视频在线免费播放| 欧美日韩ab片| 久久久国产精品亚洲一区| 97精品一区二区视频在线观看| 欧美尤物巨大精品爽| 亚洲视频小说| 久久在线免费观看视频| 国产a级黄色大片| 国产美女精品视频免费观看| 欧洲熟妇精品视频| 天天综合狠狠精品| 中国人体摄影一区二区三区| 国产精品美女久久久免费| 国产xxxx振车| 91精品啪在线观看麻豆免费| 国产深夜精品福利| 欧美日韩一区二区三区在线观看免 | 国产成人精品免高潮在线观看| 国产一区福利视频| 日韩精品一区二区三区不卡| 伊人久久青草| 国产精品狠色婷| www.午夜精品| 国产精品12p| 91老司机精品视频| 国产精品一区二区三区成人| 黄色一级一级片| 日韩女优在线播放| 天堂а√在线中文在线| 伊人久久av导航| 精品综合久久久久久97| 国产精品久在线观看| 久久久国产精品免费| 久久久久久久影院| 国产激情999| 久久人人97超碰精品888| 91麻豆蜜桃| 91国产美女视频| 99在线影院| 91精品国产91久久久久青草| 91精品视频网站| 国产精彩精品视频| 久久亚洲国产精品日日av夜夜| 成人国产一区二区| www.欧美黄色| 91精品国自产在线观看| 国产精品678| 久久久免费观看视频| 久久九九视频| 菠萝蜜影院一区二区免费| 国产精品网站免费| 国产精品毛片a∨一区二区三区|国| 久久精品亚洲热| 久久夜色精品国产| 久久久久久com| 亚洲 中文字幕 日韩 无码| 无码播放一区二区三区| 午夜精品一区二区三区在线| 亚洲精品日韩精品| 日产精品久久久一区二区| 日本在线播放不卡| 欧美日韩精品不卡| 国产亚洲精品久久久久久久 | 国产精品久久久久久久久久久久久久 | 亚洲熟妇无码一区二区三区导航 | 国产精品视频最多的网站| 国产精品视频播放| 国产精品久久久久久久久久小说| 精品免费久久久久久久| 在线一区高清| 欧美一区二区三区免费视| 日韩av综合在线观看| 欧美一区二区在线视频观看| 免费高清在线观看免费| 国产伦精品一区二区三区四区视频_| 国产女主播av| 国产精品999| 国产精品入口芒果| 中文字幕人成一区| 欧美一级淫片播放口| 欧美尤物巨大精品爽| 国产欧美在线视频| 久久久免费精品视频| 国产精品丝袜久久久久久不卡| 精品久久久久久乱码天堂| 川上优av一区二区线观看| 欧美亚州一区二区三区| 国产乱子伦精品| 久久精品国产综合精品| 久久在精品线影院精品国产| 亚洲国产精品视频一区| 欧美又大又粗又长| 国产精品午夜av在线| 久草热视频在线观看| 久久综合国产精品台湾中文娱乐网| 午夜免费在线观看精品视频| 国语自产精品视频在线看| 69精品小视频| 国产精品久久久久久久久久东京| 亚洲色图都市激情| 国内精品视频免费| 91精品免费久久久久久久久| 国产精品视频一| 亚洲精品高清国产一线久久| 黄色一级片网址| 国产传媒一区二区三区| 色综合五月天导航| 欧美中文在线免费| 91久久精品在线| 国产精品久久久久久久久影视 | 国产精品久久久久aaaa九色| 亚洲精品视频一区二区三区| 免费亚洲一区二区| 久久精品综合一区| 美女黄色丝袜一区| 热久久美女精品天天吊色| 99热成人精品热久久66| 国产精品久久久久久久av大片 | 久久综合久久综合这里只有精品| 国产精品极品尤物在线观看| 日韩精品欧美一区二区三区| 97成人在线免费视频| 欧美片一区二区三区| 欧美日韩一区二区视频在线观看 | 成人中文字幕在线观看| 国产精品高潮粉嫩av|