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

當前位置:首頁 > 網站舊欄目 > 學習園地 > 程序開發教程 > C# Small Tips

C# Small Tips
2009-12-23 10:52:26  作者:cnblogs  來源:cnblogs

學習和使用C#這么久,也有了些可以跟大家分享的經驗和教訓,這里分享下幾個關于C#開發的小技巧:

1. 輸出變量的名稱。

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

    var A = 10;

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

    實現:實現這個功能有兩種方式。讀者不妨也思考一下有沒有其他更好的方式實現這個功能。

        a. 我首先給出通過匿名類型和反射的實現方式。

    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");
        }
     }

    
//調用方式,我們通過匿名類型構造對象,然后通過反射獲取它內部屬性
     static void main()
     {
            
string testVar1 = "testName";
            Console.WriteLine(
new { testVar1 }.GetVariableName());

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


 

    b. 通過.NET 3 中的Lamda表達式這里給出另外一個更加方便的實現方式。

  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. 字符串轉換為基本類型

    需求:在日常編程中,我們經常要在文件或用戶輸入界面中將一些字符串變量轉換為常用類型,當然我們可以用System.Convert類來完成這項工作,但如果有大量轉換工作進行的時候,這種代碼看起來很不方便,這時候我們可以通過.net的一些新的特性來很方便的完成這項工作

    實現:通過擴展方法,反射和泛型可以很方便完成這項工作。

    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;
            }
            
//添加其他類型的轉換代碼,如DateTime,Enum,etc;
            throw new NotSupportedException(string.Format("類型:{0}轉換不支持",t.Name));
        }
     }
     
//使用函數
     static void main()
     {
       
int? a="111".To<int>();
        
double? b="111.111".To<double>();
        
int? c="bad".To<int>();
     }


 

不過這個轉換代碼中由于有兩個類型轉換才能通過編譯,所以看起來仍然沒那么舒服,希望大家能有更好的方式實現。

 

3. WinForm編程中線程安全調用組件。

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

    實現: 拖過擴展函數和匿名方法可以很方便的完成窗口線程和其他線程之間的交互工作。下面給出了一個簡單的實現,當然,如果你需要更安全的調用,還需要添加一些檢測,如IsHandleCreated檢測,另外如果你需要傳遞參數,你可能需要另外定義一個委托.

    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中當用戶在非form線程中需要操作form中組件對象時,調用如下
    public form:Form
    {
     
public form()
      {
        Thread t
=new  Thread(t1);
        t.start();
      }
     
void t1()
      {
            Thread.Sleep(
1000);
            
this.SafeInvoke(() => this.textBox1.Text = "Hello world");
      }
    }


 

上面只是平時碰到或者從別人那里學到的一些小的編程技巧,希望能對其他人也有所幫助。有機會的話希望能把我更多的自認為好的總結發出來。
 


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
亚洲人成网站在线播放2019 _日韩国产欧美精品_久久夜色精品国产欧美乱_在线视频福利一区
久色视频在线播放| 欧美性在线视频| 日本一道本久久| www亚洲国产| 欧美成人亚洲成人| 欧美精品久久久久久久自慰| 国产精品88a∨| 亚洲永久在线观看| 国产一区视频在线| 国产精品视频网| 欧美日韩国产免费一区二区三区| 国产高清精品一区二区三区| 亚洲制服中文| 欧美二区在线看| 按摩亚洲人久久| 日韩亚洲欧美一区二区| av免费精品一区二区三区| 不卡av电影在线观看| 欧美极品一区二区| 国产精品69av| 一本久道中文无码字幕av| 韩国成人一区| 国产精品av免费在线观看| 亚洲欧洲在线一区| 国产情侣av自拍| 国产精品久久久久久亚洲影视| 日本不卡一区二区三区视频| 国产精品av在线播放 | 欧美日韩一区二区视频在线观看| 国产精品99导航| 亚洲欧美综合一区| 国产精品综合久久久| 久久亚洲国产精品成人av秋霞| 欧美亚洲免费在线| www.精品av.com| 日日噜噜噜噜夜夜爽亚洲精品| 97久久精品在线| 伊人久久99| 成人一区二区av| 欧美激情亚洲激情| 麻豆91av| 国产精品丝袜白浆摸在线| 国产精品久久久久9999爆乳| 欧美一区二区福利| 国产精品永久在线| 国产精品国产精品国产专区不卡| 亚洲a在线观看| av免费网站观看| 美女精品视频一区| 国产视频精品网| 久久久久久网址| 欧美在线播放cccc| 国产精品久久久久久久久久新婚 | 国产成人综合精品| 日韩一级片播放| 久久免费成人精品视频| 日本va中文字幕| 久久久久久久久网站| 日本高清不卡三区| 久久久成人精品| 黄色一级大片在线观看| 国产精品吹潮在线观看| 激情视频综合网| 欧美大胆在线视频| 97色伦亚洲国产| 日本一区二区三不卡| 精品国产一区二区三区在线观看 | 国产精品日日摸夜夜添夜夜av| 日韩免费在线视频| 久久久久五月天| 狠狠色综合网站久久久久久久| 欧美精品免费看| 国产精品一 二 三| 亚洲精品视频一二三| 久久精品.com| 黄网站欧美内射| 久久久久久成人| 久久久亚洲国产| 欧美性视频精品| 最新av在线免费观看| 久久视频这里有精品| 欧美亚洲国产另类| 精品成在人线av无码免费看| 99一区二区三区| 欧美一级爱爱| 亚洲在线观看视频| 久久精品视频在线| 99国精产品一二二线| 色综合久久久久无码专区| 国产精品视频久| 91免费国产精品| 狠狠综合久久av| 五月天婷亚洲天综合网鲁鲁鲁| 久久精品免费播放| 北条麻妃在线视频观看| 青青草综合在线| 亚洲天堂第一区| 国产精品久久久久久久久久尿| 97色伦亚洲国产| 欧美 国产 日本| 亚洲AV无码成人精品一区| 久久精品aaaaaa毛片| 高清无码视频直接看| 色爱区成人综合网| 欧美久久精品一级黑人c片| 久久er99热精品一区二区三区| 国产香蕉一区二区三区| 日韩欧美一区二区在线观看| 中文字幕久久综合| 国产精品视频免费观看| 久久全球大尺度高清视频| 国产免费成人在线| 欧美亚洲国产日韩2020| 午夜啪啪福利视频| 欧美精品福利视频| 国产精品对白刺激久久久 | 国产精品国产自产拍高清av水多| 91久久久在线| 国产午夜精品一区| 免费在线观看的毛片| 日韩精品资源| 亚洲一区二区三区久久| 国产精品毛片a∨一区二区三区|国 | 精品一区二区三区毛片| 日韩美女免费线视频| 亚洲mm色国产网站| 久久久久久国产精品| 国产成人免费电影| 91精品91久久久久久| 青青草视频在线免费播放| 亚洲欧洲免费无码| 欧美成人午夜剧场免费观看| 日韩最新免费不卡| 97成人精品视频在线观看| 一区二区三区不卡在线| 国产淫片免费看| 精品国产无码在线| 国产精品最新在线观看| 亚洲在线不卡| 日韩在线免费av| 国产精品亚洲网站| 欧美国产日韩激情| 久久日韩精品| 久久亚洲影音av资源网| 久久成年人视频| 国产精品久久中文| 国产精品二区三区| 久久综合色88| 中文一区一区三区免费| 中文字幕欧美日韩一区二区| 午夜精品一区二区三区在线视| 在线观看免费91| 川上优av一区二区线观看| 欧美一区二区三区四区在线 | 国产精品一区av| 99久久精品久久久久久ai换脸| 国产乱码精品一区二区三区不卡 | 日本一区视频在线观看| 天堂а√在线中文在线| 亚洲aⅴ日韩av电影在线观看| 亚洲伊人成综合成人网| 亚洲综合在线做性| 午夜在线视频免费观看| 日本a在线免费观看| 欧美亚洲日本黄色| 精品无码久久久久久久动漫| 国产日韩精品在线观看| 国产伦一区二区三区色一情| 国产亚洲精品自在久久| 成年人网站国产| 高清亚洲成在人网站天堂| 91高清免费视频| 久久久久久久香蕉网| 国产成人久久久| 九九久久综合网站| 午夜精品在线观看| 日韩精品最新在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 国产一区不卡在线观看| 7777免费精品视频| 久久久成人的性感天堂| 久久天天躁狠狠躁夜夜躁2014 | 亚洲一区二区在线播放| 日本一区二区视频| 狠狠色伊人亚洲综合网站色| 成人一区二区av| 国产超级av在线| 国产精品视频久久久| 九九热精品视频| 欧美一区二区高清在线观看| 欧美乱偷一区二区三区在线| 成人久久精品视频| 深夜福利国产精品| 在线丝袜欧美日韩制服| 日韩免费在线观看av| 国产欧美日韩中文字幕在线| 久在线观看视频| 久久艹在线视频| 日本精品一区二区三区视频| 黄页免费在线观看视频|