麻豆传媒视频在线,国产91精品不卡视频,欧美jizz19性欧美,污视频网站在线观看,91涩漫在线观看,伊人发布在线,九色porny丨首页在线,福利视频一区,久久av网址,久久人人视频

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

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

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

1. 輸出變量的名稱。

    需求:有時(shí)候我們在測試或平時(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. 我首先給出通過匿名類型和反射的實(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)用方式,我們通過匿名類型構(gòu)造對象,然后通過反射獲取它內(nèi)部屬性
     static void main()
     {
            
string testVar1 = "testName";
            Console.WriteLine(
new { testVar1 }.GetVariableName());

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


 

    b. 通過.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類來完成這項(xiàng)工作,但如果有大量轉(zhuǎn)換工作進(jìn)行的時(shí)候,這種代碼看起來很不方便,這時(shí)候我們可以通過.net的一些新的特性來很方便的完成這項(xiàng)工作

    實(shí)現(xiàn):通過擴(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>();
     }


 

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

 

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

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

    實(shí)現(xiàn): 拖過擴(kuò)展函數(shù)和匿名方法可以很方便的完成窗口線程和其他線程之間的交互工作。下面給出了一個(gè)簡單的實(shí)現(xiàn),當(dāng)然,如果你需要更安全的調(diào)用,還需要添加一些檢測,如IsHandleCreated檢測,另外如果你需要傳遞參數(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中組件對象時(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é)到的一些小的編程技巧,希望能對其他人也有所幫助。有機(jī)會(huì)的話希望能把我更多的自認(rèn)為好的總結(jié)發(fā)出來。
 


安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
成人高清免费观看| 日韩成人精品一区二区| 国产精品久久9| 日韩在线小视频| 亚洲美女免费精品视频在线观看| 欧美人体做爰大胆视频| 色综合久久久网| 欧美日韩美女在线| 午夜激情综合网| 一区二区三区四区激情| 国产欧美一二三区| 91亚洲大成网污www| 国产ts人妖一区二区| 麻豆中文一区二区| 久久成人久久爱| 久久精品国产精品亚洲红杏| 日韩精品电影在线| 日韩精品一二三四| 秋霞电影一区二区| 久久av老司机精品网站导航| 麻豆精品久久久| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产麻豆国产在线观看| 妖精一区二区三区精品视频 | 色资源网站在线观看| 天堂影视av| 日本一本草久在线中文| 成人精品一区二区三区校园激情| 888av在线| av资源中文在线天堂| 国产一区二区三区影视| 91麻豆精品激情在线观看最新 | 日韩欧美中文字幕在线播放| 午夜不卡av在线| 欧美亚洲一区二区三区四区| 日韩欧美久久一区| 日韩精品亚洲精品| 国产一区二区三区网站| 成人97在线观看视频| 欧美伊久线香蕉线新在线| 国产剧情av在线| 国产爆初菊在线观看免费视频网站| 自拍视频在线| 666av成人影院在线观看| 欧美a在线观看| 精品久久中文| 久久先锋资源| 97se亚洲国产综合在线| 中文字幕一区免费在线观看| 一区二区三区在线免费视频| 一区二区三区免费网站| 欧美一区二区三区视频免费| www.xxxx欧美| 日本二区视频| 色呦呦在线观看视频| 91成人福利社区| 久久精品不卡| 福利电影一区二区三区| 一级女性全黄久久生活片免费| 欧美日本在线看| xxxx性欧美| 成人精品久久久| 激情影院在线观看| 91伊人久久| 91高清一区| 国产精品69毛片高清亚洲| 一区二区高清视频在线观看| 日韩欧美一区二区久久婷婷| 国内精久久久久久久久久人| 天堂a√中文在线| 激情开心成人网| 欧美一区二区三| 国产精品资源站在线| 亚洲成人www| 亚洲欧洲在线看| 韩国97影院| 少妇淫片在线影院| 日韩精品久久久久久久电影99爱| 免费成人你懂的| 夜夜嗨av一区二区三区| 91精品国模一区二区三区| 91高清视频免费| 一本一道波多野毛片中文在线| 不卡精品视频| 国产精品婷婷| 国产精品不卡在线观看| 日韩电影中文字幕| 日本福利小视频| 欧美亚洲韩国| 伊人激情综合| 一区二区三区在线免费观看| 久久黄色av网站| 欧美老女人性开放| 国产精品高清一区二区| 久久一综合视频| 色偷偷久久一区二区三区| 久久人91精品久久久久久不卡| 国产免费a∨片在线观看不卡| 懂色av一区二区| 国产精品正在播放| 欧美日韩三级一区二区| 日韩免费在线播放| xxx欧美xxx| 青青青伊人色综合久久| 色视频成人在线观看免| 国产suv精品一区二区| 国产精品视频一区视频二区 | 亚洲精品孕妇| 日本大香伊一区二区三区| 国产精品第二页| 在线日韩成人| 肉丝袜脚交视频一区二区| 欧美午夜性色大片在线观看| 久久全球大尺度高清视频| 台湾成人免费视频| 麻豆免费精品视频| 亚洲精品狠狠操| 黄色网址在线播放| 欧美电影免费| 午夜国产精品一区| 国产在线视频2019最新视频| 麻豆一二三区精品蜜桃| 激情综合网最新| 亚洲精品久久久久久久久久久| 日本一级在线观看| 欧美 日韩 国产一区二区在线视频 | 日韩欧美一区二区视频| 国产极品jizzhd欧美| 亚洲最新无码中文字幕久久| 亚洲黄色高清| 亚洲天堂免费在线观看视频| 欧美日本在线视频中文字字幕| yw193.com尤物在线| 99tv成人| 555www色欧美视频| 中文字幕亚洲影视| 欧美黄色一级视频| 国产亚洲高清一区| 久久久免费高清电视剧观看| 久久久女女女女999久久| 精品美女久久| 制服丝袜成人动漫| 成年人网站在线| 一本色道久久综合| 日韩av在线最新| 黄色亚洲网站| 国产在线国偷精品产拍免费yy| 国产午夜精品免费一区二区三区| 羞羞视频在线观看不卡| 免费成人在线影院| 久久久女人电视剧免费播放下载| 久久亚州av| 538国产精品一区二区免费视频| 婷婷精品视频| 久久成人人人人精品欧| 丝袜av一区| 中文字幕亚洲第一| 一区三区自拍| 欧美日韩高清区| 久久一区欧美| xxx一区二区| 99久久婷婷国产综合精品青牛牛| 午夜视频在线观看一区| 福利网站在线观看| 欧美在线综合视频| 日韩二区三区| 久久色中文字幕| 电影在线观看一区| 日韩视频免费中文字幕| 国产福利91精品一区| 在线看片免费人成视久网| 岛国av一区二区在线在线观看| 99在线视频影院| 国产一区二区女| 国产亚洲久久| 中文字幕国内精品| 午夜一区不卡| 综合国产在线视频| 奇米777国产一区国产二区| 欧美日韩国产片| 成人自拍av| 欧美视频二区36p| 午夜影院在线观看国产主播| 亚洲国产日韩精品| 草美女在线观看| 精品国产鲁一鲁一区二区张丽| a级片免费在线观看| 欧美日韩免费观看中文| 成年男女免费视频网站不卡| 亚洲国产精品一区二区久久恐怖片| 无遮挡动作视频在线观看免费入口| 国产日韩成人精品| 欧美激情黑人| 亚洲色图制服丝袜| 高清电影在线观看免费| 午夜成人免费电影| 四虎精品一区二区免费| 密臀av在线播放| 亚洲一区欧美二区| 欧美一级黄色网|