程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# Small Tips

C# Small Tips

編輯:C#入門知識

學習和使用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的一些新的特性來很方便的完成這項工作

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

&nb

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved