none
清除表單所有變數 RRS feed

  • 問題

  • 有清除表單的變數指令嗎

    我想清除 dim 的變數

    因為太多 一個一個打 =nothing 有點累.....


    0.0
    2011年4月17日 上午 11:01

解答

  • 建議你使用像 Initialize() 和 Clean() 的方式 (或使用建構式與解構式) 來統一處理變數的賦值與釋放,而不是在程式中處理一堆變數的設值或清除。

    或是再釐清一下程式流程,看能不能把這些動作集合起來,或是由一個中控的物件處理。


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年4月18日 上午 07:39
    版主

所有回覆

  • Hi,

    你可以使用Reflection反射技術把表單物件所有的成員變數清空

    也可以考慮直接產生個新的表單~也許會比較方便一點


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/

    2011年4月17日 下午 03:48
  • 你也可以用一個 List(Of T) 來裝變數,這樣清除的時候只要清這個 List(Of T) 即可。

    話說回來,寫程式如果連用 Visual Studio 打個 nothing 都懶,那 ...


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年4月18日 上午 12:38
    版主
  • 我比較好奇的是, 這樣做的目的是什麼 ? 可以請提問者說明一下嗎 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年4月18日 上午 04:07
    版主
  • 抱歉 回晚了

    因為在寫類似進銷存的軟體

    公司採用的變數太多

    造成有可能漏到某個變數忘記清空會導致運算出來的結果會誤差

    所以一直在找這方面的相關問題

    因為我一個一個找他變數名稱 在NOTHING 的話 是可以沒錯

    但我怕我漏掉了

    可否有方法可以解決呢


    0.0
    2011年4月18日 上午 07:00
  • 你也可以用一個 List(Of T) 來裝變數,這樣清除的時候只要清這個 List(Of T) 即可。

    話說回來,寫程式如果連用 Visual Studio 打個 nothing 都懶,那 ...


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579


    List(Of T) 裝變數 似乎可行

    那我該怎麼裝進去?

    例如我 dim staff as string

    正在思考 怎麼裝進去 怎麼讀出來 QQ


    0.0
    2011年4月18日 上午 07:02
  • http://msdn.microsoft.com/zh-tw/library/xfhwa508.aspx 
    2011年4月18日 上午 07:09
  • 建議你使用像 Initialize() 和 Clean() 的方式 (或使用建構式與解構式) 來統一處理變數的賦值與釋放,而不是在程式中處理一堆變數的設值或清除。

    或是再釐清一下程式流程,看能不能把這些動作集合起來,或是由一個中控的物件處理。


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/pages/StudyAzurecom-yun-duan-xue-tang/155855707799579
    2011年4月18日 上午 07:39
    版主
  • Hi,

    變數過多可能還是要從物件的分割上再去審視一遍~切割良好的話應該不會有太多的變數存在

    這邊示範一下以反射來達到你的需求

     

    ObjectExtension.cs

    using System;
    using System.Reflection;
    using System.Linq;
    using System.ComponentModel;
    
    namespace ConsoleApplication13
    {
    	public static class ObjectExtension
    	{
    		public static void Reset(this object obj)
    		{
    			foreach (var p in obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
    			{
    				if (!p.CanWrite)
    					continue;
    				var defaultValue = (p.GetCustomAttributes(typeof(DefaultValueAttribute), false) as DefaultValueAttribute[]).FirstOrDefault();
    				p.SetValue(obj, (defaultValue == null) ? (p.PropertyType.IsValueType ? Activator.CreateInstance(p.PropertyType) : null) : defaultValue.Value, null);
    			}
    		}
    	}
    }
    

     

     

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ComponentModel;
    
    namespace ConsoleApplication13
    {
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			var people = new Person()
    			{
    				Name ="Larry",
    				Sex= Person.SexType.Boy,
    				Age=32
    			};
    
    			ShowPeople(people);
    
    			people.Reset();
    
    			Console.WriteLine(new string('=', 50));
    			ShowPeople(people);
    		}
    
    		static void ShowPeople(Person people)
    		{			
    			Console.WriteLine(String.Format ("Name: {0}",people.Name));
    			Console.WriteLine(String.Format("Sex: {0}", people.Sex));
    			Console.WriteLine(String.Format("Age: {0}", people.Age));
    		}
    	}
    
    
    	public class Person
    	{
    		public enum SexType
    		{
    			Boy,
    			Girl
    		}
    				
    		public string Name { get; set; }				
    		public SexType Sex { get; set; }
    
    		[DefaultValue(18)]
    		public int Age { get; set; }
    	}
    }
    
    

     

     


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年4月18日 上午 08:52